iPhone:MPMusicPlayerController停止AVAudioPlayer

时间:2012-12-01 11:06:47

标签: iphone ios avaudioplayer ipod

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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