【发布时间】:2011-10-31 05:48:57
【问题描述】:
我正在编写一个需要播放声音以响应用户位置变化的应用。
当应用程序在主焦点(而不是在后台)运行时,一切正常,并且使用 AVAudioPlayer 可以正确播放声音。
如果我让应用程序进入后台(通过按主页按钮)声音会继续播放(我已经更改了 info.plist 文件并使用了 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 使这成为可能)。
我的问题是,如果 GPS 事件发生在应用程序已经在后台运行时,则永远不会播放声音(即使应用程序返回主焦点时也不会播放),尽管我可以在控制台中看到 GPS 事件被捕获,当我使用断点进行调试时,我可以看到应该播放音乐的代码已经执行,但仍然没有播放音乐。
我的问题是:当应用程序不在主要焦点(在后台)时,如何让应用程序开始播放声音?
【问题讨论】:
-
我不知道这是否可能,但我会尝试发送本地通知,如果用户打开它,则开始播放声音。
-
尝试使用不同的声音框架,例如 MediaPlayer 或 AudioToolBox,我认为它们可能比 AVAudioPlayer 更有能力从后台播放声音。
标签: iphone objective-c cocoa-touch avaudioplayer multitasking