gpt4 book ai didi

ios - 如何检查 AVPlayer 的状态?

转载 作者:可可西里 更新时间:2023-11-01 03:45:42 24 4
gpt4 key购买 nike

我认为我可以简单地通过属性“rate”来检查 AVPlayer 的状态。

这就是我创建播放器实例的方式:

player = AVPlayer(URL: stream) // streaming from the internet
player!.play()

稍后我会做这样的事情

println(player!.rate)

这是我发现的:

  • 在模拟器中,如果播放器没有运行,我得到“0.0”,如果播放器正在运行,我得到“1.0”。
  • 如果我启动播放器但中断了互联网连接,它会将值从 1 更改为 0。
  • 但是,在我的 iPhone 上,即使我进入飞行模式,该属性仍保持值 1?!

您是否知道为什么会发生这种情况以及我如何检查流状况?

到目前为止,我已经尝试过观察者:

player!.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.New, context: nil)

但即使是“observeValueForKeyPath”方法也不会在我的 iPhone 测试用例中触发。

最佳答案

查看 the Apple docs here并滚动到“Key-Value Observing”部分。 特别是该部分中的第 3

它帮助我让我的实现工作。我的结果代码如下所示:

//Global
var player = AVPlayer()

func setUpPlayer() {
//...
// Setting up your player code goes here
self.player.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
//...
}

// catch changes to status
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
print("obsrved")
}

关于ios - 如何检查 AVPlayer 的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900105/

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