首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS AVPlayer连接丢失后的慢缓冲

iOS AVPlayer连接丢失后的慢缓冲
EN

Stack Overflow用户
提问于 2012-08-17 16:07:25
回答 1查看 3.5K关注 0票数 7

我正在使用AVPlayer构建一个音乐流媒体应用程序。一切都很好,音乐一直在后台播放等等。我的问题是,当我在手机上模拟连接丢失时(关闭蜂窝数据,等待流停止,然后切换回来),即使有3G网络存在,应用程序也需要大约2分钟的时间来填充缓冲区(同时我可以上网)。

所有的东西都是在模拟器里工作的,而不是在设备上。如果我等待2分钟,我将得到一个适当的playbackLikelyToKeepUp通知,从这一切都是好的,但这种拒绝应该只是几秒钟。当我通过关闭路由器上的带宽控制来模拟低带宽时是可以的,但是当我模拟载波通过关闭蜂窝数据并将它切换回那么长的时间来改变时。

我用"playbackBufferEmpty“打电话给endInterruption,用"playbackLikelyToKeepUp”打电话给endInterruption。主要的问题是"playbackLikelyToKeepUp“来得太晚了。

代码语言:javascript
复制
- (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;
}

有什么想法吗?我花了一整天的时间在这个问题上,搜索了所有的东西,但是我被困住了。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 10:41:15

几个月前,我也经历过同样的情况,我的结论是"playbackLikelyToKeepUp不可靠“。

我的解决方案是手动检查缓冲TimeRange的。

HysteriaPlayer.FYI,我为远程媒体播放创建了一个AVPlayer类- -,您可以直接使用它,或者查找.m文件。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12009277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档