如何在应用程序已在后台时开始播放音乐?

我正在编写一个应用程序,需要发挥声音作为对用户位置变化的反应。

当应用程序在主焦点(不在后台)中运行时,一切运行良好,并且使用AVAudioPlayer正确播放声音。

如果我让应用程序转到后台(通过按回家按钮)声音继续播放(我已经改变了info.plist文件并使用[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil;;使这成为可能)。

我的问题是,如果应用程序已经在后台时发生GPS事件,则从未播放声音(即使应用程序返回到主焦点时也是如此),尽管我可以在控制台中看到GPS事件已被捕获,当我使用断点调试时,我可以看到应该播放音乐的代码被执行,但仍然没有播放音乐。

我的问题是:如何让应用程序在未处于主要焦点(其背景中)时开始播放声音?


我认为你不能这样做,因为激活你的应用程序的唯一方法是通过通知,而这些都是按时间安排的,而不是由行动触发的。 也许,有一种使用后台线程的方式,但是苹果无论如何都会拒绝这种方式,所以没有意义。 HTH,马库斯


我想你只需要将你的应用程序声明为音频应用程序。 您可以通过在info.plist文件中添加带值音频的UIBackgroundMode键来完成此操作。

链接地址: http://www.djcxy.com/p/57445.html

上一篇: How to start playing music when app is already in background?

下一篇: Resume Background Audio After Playing Sound With AVAudioPlayer