在iOS设备被锁定或应用程序处于后台时启动下载

时间:2012-09-11 21:31:28

标签: objective-c ios xcode ios5

我正在使用AVAudioPlayer的实例播放音乐。一首歌结束后,“播放列表”中的下一首歌曲将使用NSURLConnection下载。

我陷入困境:我希望能够下载播放列表中的下一个音频文件并在手机锁定时或在用户使用其他应用时在后台开始播放。我该怎么做?

我偶然发现了这篇文章:Play music in the background using AVAudioplayer建议使用[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];,但这似乎只允许音频在后台播放,而不是启动下载。

当然,这是可能的,因为Pandora,Spotify和其他人可以做到这一点......帮助!

2 个答案:

答案 0 :(得分:1)

在下载audiofile时,您应该要求系统让您在后台运行。您可以使用UIApplication的beginBackgroundTaskWithExpirationHandler:方法来完成此操作。下载文件后,您可以让AVAudioPlayer播放您的文件。

答案 1 :(得分:0)

您应该阅读Apple文档以了解多任务处理。

http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3

您需要在info.plist中添加UIBackgroundModes键以获取音频。这会阻止您的应用被暂停,然后所有正常的回调仍将继续运行。