多任务处理:在特定时间停止背景音频

时间:2010-12-09 18:44:24

标签: iphone objective-c ios audio avaudioplayer

我正在开发一款使用背景音频(无限循环)的iphone应用程序,以便在应用程序进入后台后继续播放。

我的问题是我想实现一个“睡眠定时器”,它会在指定的时间段后停止播放。

这可能吗?我花了一个小时寻找一种无法实现的方法。

编辑:我目前的想法是使用较低级别的API,音频队列服务,并在AudioQueueOutputCallback期间使用另一个循环实例手动重新填充队列。如果计时器已过期,我不会填充循环。我认为这应该可行,因为文档说当应用程序正在播放多任务背景音频时仍会触发音频回调。任何人都可以想到一个更好的方式或原因,为什么这不起作用?

2 个答案:

答案 0 :(得分:2)

当您在后台排队声音数据时,您的应用程序仍然可以正常运行并且正好像它在前台一样运行(差不多好),所以是的,您应该只编写一个计时器,在给定时间停止播放,它会按预期被解雇。

现在回到第二个问题:一旦你停止排队,你的应用程序将被“冻结”,直到用户手动将它带到前台...所以你应该做的是开始排队第二个文件中的音频数据第一个是完成播放,如果你需要暂停或停止,也许解决方案是播放0个字节(静音)?

答案 1 :(得分:0)

我不确定在App Store中是否允许这样做。除了VoIP应用程序和推送通知之外,不允许在后台执行应用程序。