我正在使用AVPlayer构建音乐流应用程序。 一切工作正常,音乐不断在后台播放等 我的问题是当我模拟手机上的连接丢失(切换蜂窝数据关闭,等待流停止,然后切换回),这将需要约2分钟即使存在3G网络,我也可以填充缓冲区(我可以在网上冲浪)。iOS AVPlayer连接丢失后缓慢重新缓冲
一切工作在模拟器,但不是在设备上。 如果我等2分钟,我会得到一个正确的playbackLikelyToKeepUp通知,并从这一切都很好,但重新缓解应该只是几秒钟。当我通过关闭路由器上的带宽控制来模拟低带宽时是可以的,但是当我通过关闭蜂窝数据并将其切换回原来的模拟载波更改时。
我在“playbackBufferEmpty”上调用beginInterruption并在“playbackLikelyToKeepUp”上调用endInterruption。主要问题是“playbackLikelyToKeepUp”到达太迟。
- (void)beginInterruption {
self.backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
}
- (void)endInterruptionWithFlags:(NSUInteger)flags {
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskIdentifier];
self.backgroundTaskIdentifier = UIBackgroundTaskInvalid;
if(self.interrupted) [self play];
self.interrupted = NO;
}
任何想法?我花了整整一天的时间处理这个问题,搜索了一切,但我被卡住了。 在此先感谢。