首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在后台启动AVQueuePlayer

在后台启动AVQueuePlayer
EN

Stack Overflow用户
提问于 2012-04-27 00:46:37
回答 1查看 483关注 0票数 2

我有一个可以播放互联网上的音频文件的AVQueuePlayer。它可以在应用程序的后台执行,并且做得很好(在后台播放,并在后台异步获取新文件)。

当我允许AVQueuePlayer在将应用程序移到后台之前开始播放时,一切都很好。为了开始播放,我的应用程序必须与几个服务进行对话,然后才能真正获得要播放的正确文件。

如果我在播放开始前的几秒钟内将应用程序移到后台,那么AVQueuePlayer将无法播放。

为了能够在后台与服务对话,我总是首先通过beginBackgroundTaskWithExpirationHandler请求后台任务权限。

查看日志,我可以看到所有服务都正常完成(所以后台任务权限有效),AVQueuePlayer使用多个AVPlayerItems正确初始化,但不会开始播放。AVQueuePlayer.currentItem.status也永远不会访问AVPlayerStatusReadyToPlay。

我确保所有与AVQueuePlayer的交互都发生在主线程上。

我被难住了,如果应用程序在后台,无论我的设置和我是否有后台任务权限,AVQueuePlayer都不会启动。

我之前已经能够用音频队列服务做一些类似的事情,但我希望这次AVQueuePlayer和它的更简单的应用程序接口将足够,但看起来我将不得不回到音频队列服务和公司。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 08:35:49

您必须在应用程序仍在前台时启动音频队列。如有必要,请静默。看起来,如果应用程序在进入后台时没有产生音频,那么默认情况下,它的音频会话将被取消并提供给新的前台应用程序。因此,进入后台的应用程序没有用于播放任何内容的会话。

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

https://stackoverflow.com/questions/10337807

复制
相关文章

相似问题

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