Ada*_*ang 16 audio-streaming ios avplayer
我想在流缓冲区为空时重新连接到服务器.
我怎样才能触发的方法时,AVPlayer或AVPlayerItem缓冲区是空的?
我知道有playbackLikelyToKeepUp,playbackBufferEmpty以及playbackBufferFull检查缓冲区状态的方法,但那些不是回调.
是否有任何回调函数,或者我应该添加的任何观察者?
sci*_*sxp 55
您可以为这些键添加观察者:
[playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];
Run Code Online (Sandbox Code Playgroud)
第一个将在缓冲区为空时发出警告,第二个在缓冲区再次运行时发出警告.
然后,要处理密钥更改,您可以使用此代码:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if (!player)
{
return;
}
else if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (playerItem.playbackBufferEmpty) {
//Your code here
}
}
else if (object == playerItem && [keyPath isEqualToString:@"playbackLikelyToKeepUp"])
{
if (playerItem.playbackLikelyToKeepUp)
{
//Your code here
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16917 次 |
| 最近记录: |