gpt4 book ai didi

swift - AVPlayerViewController 与来自 NSURL 的 AVPlayer

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:52 25 4
gpt4 key购买 nike

我有 AVPlayer 从 url 加载视频并将播放器放在 AVPlayerViewController 中,但我不想缓冲和下载视频,直到用户按下播放按钮。我应该怎么做?

var player: AVPlayer = AVPlayer(URL: nsurl)
var newVideoChunk: AVPlayerViewController = AVPlayerViewController()
newVideoChunk.player = player

最佳答案

AVPlayerViewController 与来自 NSURL 的 AVPlayer?

您需要设置视频 Assets 并使用该基于 NSURL 的 Assets 创建一个 playerItem。然后您需要向该播放器项添加一个观察者(立即):

self.playerItem?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.New, context: Constants.AVPlayerStatusObservationContext)

在键值观察器例程中,您可以捕获上下文并调用外部函数:

   override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
//
if context == Constants.AVPlayerStatusObservationContext {
if (keyPath! == "status") {
if (player!.status == AVPlayerStatus.ReadyToPlay) {
print("ready")
readyToPlay()

} else if (player!.status == AVPlayerStatus.Failed) {
// something went wrong. player.error should contain some information
} else if (player!.status == AVPlayerStatus.Unknown) {
print("unknown")
}
}
}
}

如果您只想在单击按钮时处理缓冲和下载,请确保仅在按钮操作方法中添加观察者。这对于文件 URL 和在线 URL 一样有效。

请查看我的示例要点以获取更多信息:

VideoPlayerViewController.swift

关于swift - AVPlayerViewController 与来自 NSURL 的 AVPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com