ios – 使用AVPlayer处理流媒体事件

ios – 使用AVPlayer处理流媒体事件,第1张

概述我正在构建一个播放音频流的应用程序(来自webradio)。 我正在使用AVPlayer。 1)我想知道当连接缓慢或用户刚刚点击“播放”时AVPlayer的“缓冲”方式。我想检测到AVPlayer是“缓冲”来显示一个UIActivityIndi​​catorView。 2)在后台运行时也是一样的问题。在这种情况下缓冲时该怎么办? 谢谢 ! 对于第一个问题 你可以参考我关于这个话题的答案ios av 我正在构建一个播放音频流的应用程序(来自webradio)。

我正在使用AVPlayer。

1)我想知道当连接缓慢或用户刚刚点击“播放”时AVPlayer的“缓冲”方式。我想检测到AVPlayer是“缓冲”来显示一个UIActivityIndi​​catorVIEw。

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处理流媒体事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存