我正在使用AVPlayer来传输一些实时HTTP音频,而不是AVAudioPlayer,它不支持实时HTTP音频流,问题是,我如何获得当前播放的状态?例如:
点击播放按钮 - > [加载] - > [播放]点击暂停按钮 - > [已暂停]
我需要在加载时显示微调器,在播放时显示暂停按钮并在暂停时显示播放按钮,我知道我可以观察AVPlayer的“状态”和“速率”属性:
rate:当前的播放速度 . 0.0表示“已停止”,1.0表示“以当前项目的自然速率进行游戏” .
status:表示播放器是否可用于播放 .
AVPlayerStatusUnknown,
AVPlayerStatusReadyToPlay,
AVPlayerStatusFailed
因此无法指示音频是“正在加载”,并且在状态更改为AVPlayerStatusReadyToPlay后,仍然需要一些时间来播放音频(可能因为它是实时音频) .
但无论如何,我如何获得当前播放的正确状态?我知道Matt有一个AudioStream,但它不支持HTTP Live音频 .
非常感谢!
2 回答
我用了
监控状态键(“状态”) . 然后我创建了播放器
并在observeValueForKeyPath中
这适合我...我希望它对你有所帮助 .
针对Swift 2进行了更新:
添加观察者:
观察