1

当用户锁定屏幕时,我正在使用 AVAudioPlayer 播放无声音乐,这样我的计时器就不会停止。但是,当我用 播放 iPod 音乐时[MPMusicPlayerController applicationMusicPlayer]AVAudioPlayer停止,没有收到任何回电。有什么方法可以让我[MPMusicPlayerController applicationMusicPlayer]在不停止播放的情况下开始AVAudioPlayer播放?

编辑: 谢谢大家,这是我正在开发的应用程序:

它是一个闹钟应用程序,这个应用程序允许用户在应用程序运行时锁定屏幕,当闹钟时间到时,应用程序可以播放 iPod 音乐来唤醒用户。本地通知不能使用 iPod 音乐作为提醒声音,所以我必须在屏幕锁定时保持应用程序运行。

如果用户退出应用程序,它将使用本地通知作为警报,其声音仅限于捆绑中的文件。

我不能使用 UILocalNotification 作为计时器,因为当处于屏幕锁定状态时(在 UIApplicationStatusInactive 中),应用程序无法接收系统生成的本地通知。

4

3 回答 3

1

Apple 已经构建了他们的后台系统,以真正限制此类事情的发生。本质上,除非需要,否则您无法让应用程序在后台运行。如果您解释您要完成的工作,也许可以找到更好的解决方案,但作为一种好的做法,切勿使用随机背景方法来做其他事情。我假设您可能正在使用微弱的音乐作为在主屏幕上显示自定义内容的一种方式,这不是一个好主意。

于 2012-12-01T13:03:55.513 回答
1

如果您播放无声音频,您的应用将被拒绝。

同样根据苹果的文档https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103,通知不能有声音(soundName) 播放超过 30 秒。

因此,您将无法在商店中发布您的应用程序。

于 2012-12-02T10:45:36.100 回答
0

我自己想通了。停止AVAudioPlayer的不是调用[MPMusicPlayerController +applicationMusicPlayer],而是调用[MPMusicPlayerController -setShuffleMode:],我不知道为什么调用它会停止AVAudioPlayer,但这就是问题所在。谢谢大家,我想我应该下次粘贴我的完整代码。

于 2012-12-26T07:22:40.790 回答