我正在使用AVPlayer。
1)我想知道当连接缓慢或用户刚刚点击“播放”时AVPlayer的“缓冲”方式。我想检测到AVPlayer是“缓冲”来显示一个UIActivityIndicatorVIEw。
2)在后台运行时也是一样的问题。在这种情况下缓冲时该怎么办?
谢谢 !
解决方法 对于第一个问题你可以参考我关于这个话题的答案ios avplayer trigger streaming is out of buffer
第二个
这是我如何解决这个同样的问题:
里面你处理缓冲区空的事件添加这个代码:
if (object == playerItem && [keyPath isEqualToString:@"playbackBufferEmpty"]) { if (playerItem.playbackBufferEmpty) { [[NSNotificationCenter defaultCenter] postNotificationname:@"message" object:@"Buffering..."]; if([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { task = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(voID) { }]; } } }
现在,在缓冲区准备好再次执行之后,您将不得不停止此后台任务:
if (object == playerItem && [keyPath isEqualToString:@"playbacklikelyToKeepUp"]){ if (playerItem.playbacklikelyToKeepUp) { [player play]; if([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { [[UIApplication sharedApplication] endBackgroundTask:task]; task = 0; } }}
ps:任务在我的.h文件上被声明为uibackgroundtaskIDentifIEr任务;
总结以上是内存溢出为你收集整理的ios – 使用AVPlayer处理流媒体事件全部内容,希望文章能够帮你解决ios – 使用AVPlayer处理流媒体事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)