【发布时间】:2013-04-29 11:22:49
【问题描述】:
作为标题,我正在尝试使用 AVPlayer 实例在 iOS 和 OS X 上直播互联网广播。使用简单的player = [AVPlayer playerWithURL:URL];,一切都按预期工作
在使用该应用程序时,我注意到流在 15 分钟后才停止,或多或少。问题是没有注意到。
[player addObserver:self forKeyPath:@"status" options:0 context:nil];
[player addObserver:self forKeyPath:@"rate" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (object == player) {
if ([keyPath isEqualToString:@"status"]) {
NSLog(@"status -> %ld", player.status);
}
if ([keyPath isEqualToString:@"rate"]) {
NSLog(@"rate -> %f", player.rate);
}
}
}
两个值都切换为1,但即使音频停止播放,也不会再次切换。在 iOS 上,右上角的 play 图标消失了,但由于 player.rate 值没有改变,应用程序仍然认为有音频播放。
一开始我以为是直播,所以我尝试了 5by5 和 twit 的其他直播,同样的事情发生了。
然后我以为是我的连接,所以在直播开始后,我关闭了我的连接,大约一分钟后,我观察到的AVPlayerItemDidPlayToEndTimeNotification被解雇了。
花了一些时间来测试这个。
那么知道为什么会这样吗?更重要的是,如何解决?
【问题讨论】: