📅  最后修改于: 2023-12-03 14:50:51.450000             🧑  作者: Mango
在 iOS 应用中播放视频,可以使用 AVPlayer 和 AVPlayerViewController。AVPlayer 是一个基于 AVFoundation 框架的播放器,而 AVPlayerViewController 提供了一个用户界面来控制 AVPlayer 的播放状态。本示例代码将演示使用 AVPlayerViewController 在 Swift 中播放本地视频文件。
import UIKit
import AVFoundation
import AVKit
class ViewController: UIViewController {
var player: AVPlayer!
var playerController: AVPlayerViewController!
override func viewDidLoad() {
super.viewDidLoad()
// 视频文件路径
guard let url = Bundle.main.url(forResource: "video", withExtension: "mp4") else {
return
}
// 创建 AVPlayer
player = AVPlayer(url: url)
// 创建 AVPlayerViewController
playerController = AVPlayerViewController()
// 将 AVPlayer 关联到 AVPlayerViewController
playerController.player = player
// 设置 AVPlayerViewController 完成后自动关闭播放器
playerController.allowsPictureInPicturePlayback = false
playerController.delegate = self
// 自动播放视频
player.play()
// 添加 AVPlayerViewController 至界面中
addChildViewController(playerController)
view.addSubview(playerController.view)
playerController.view.frame = view.bounds
playerController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
// 界面消失时停止播放器
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
player.pause()
}
}
extension ViewController: AVPlayerViewControllerDelegate {
// 播放完毕关闭播放器
func playerViewControllerDidStopPictureInPicture(_ playerViewController: AVPlayerViewController) {
playerViewController.dismiss(animated: true, completion: nil)
}
func playerViewController(_ playerViewController: AVPlayerViewController, failedToStartPictureInPictureWithError error: Error) {
// Handle failure here.
print("Failed to start PiP: \(error)")
}
}
UIKit
、AVKit
和 AVFoundation
模块AVPlayer
和 AVPlayerViewController
类型的变量viewDidLoad
函数中,获取本地视频文件的路径,并通过 AVPlayer
创建播放器实例AVPlayerViewController
实例,并将 AVPlayer
关联到其中AVPlayerViewController
到当前 ViewController
中,并设置其大小,并自动播放viewWillDisappear
函数中停止播放AVPlayerViewControllerDelegate
中处理播放完毕和其他事件本示例代码可以播放应用中名为 video.mp4
的本地视频文件。视频将自动播放,并且在播放完成后自动关闭 AVPlayerViewController
。
注:需在项目中添加 video.mp4
视频文件。