2011-12-28 98 views
1

我需要在iPod上播放使用AudioUnit合成的自定义声音。 此声音应在iPod播放列表中播放音乐一小时后播放(使用MPMusicPlayerController播放)。 问题是如果屏幕处于开启状态,一切正常,但是如果屏幕关闭,我的自定义声音无法播放。
如果在屏幕关闭时声音已经在播放,它会继续播放。所以我假设我正在使用正确的音频会话类别。如何在iPod的屏幕关闭时开始播放声音?

你能给我任何提示吗?

回答

0

根据苹果的developer library

AVAudioSessionCategoryPlayback或等效的 kAudioSessionCategory_MediaPlayback - 此类别的 应用,其音频播放是最重要的。您的音频 即使在屏幕锁定并且Ring/Silent开关设置为 的情况下也会播放。

(此外,检查this table

看来,音频会话类别设置为AVAudioSessionCategoryPlaybackkAudioSessionCategory_MediaPlayback会自动解决您的问题。

+0

感谢您的回答,但我已经在使用AVAudioSessionCategoryPlaback,它仍然无法正常工作。音乐播放正确,但是当我的合成声音播放时,没有任何反应。它只会在我解锁屏幕后播放。有点奇怪。 – OtoLeo 2012-01-11 15:15:32

+0

确实很奇怪。我希望我能更有帮助。不过,我会检查所有的基本知识:确保会话不仅被初始化,而且被设置为活动。 – rahzark 2012-01-11 16:28:07

+0

我终于搞定了。我不得不设置kAudioSessionProperty_OverrideCategoryMixWithOthers。起初,我认为这不是必需的,因为我不需要同时播放音乐和声音。 – OtoLeo 2012-01-11 19:20:30