1
我需要在iPod上播放使用AudioUnit合成的自定義聲音。 此聲音應在iPod播放列表中播放音樂一小時後播放(使用MPMusicPlayerController播放)。 問題是如果屏幕處於開啓狀態,一切正常,但是如果屏幕關閉,我的自定義聲音無法播放。
如果在屏幕關閉時聲音已經在播放,它會繼續播放。所以我假設我正在使用正確的音頻會話類別。如何在iPod的屏幕關閉時開始播放聲音?
你能給我任何提示嗎?
我需要在iPod上播放使用AudioUnit合成的自定義聲音。 此聲音應在iPod播放列表中播放音樂一小時後播放(使用MPMusicPlayerController播放)。 問題是如果屏幕處於開啓狀態,一切正常,但是如果屏幕關閉,我的自定義聲音無法播放。
如果在屏幕關閉時聲音已經在播放,它會繼續播放。所以我假設我正在使用正確的音頻會話類別。如何在iPod的屏幕關閉時開始播放聲音?
你能給我任何提示嗎?
根據蘋果的developer library:
AVAudioSessionCategoryPlayback或等效的 kAudioSessionCategory_MediaPlayback - 此類別的 應用,其音頻播放是最重要的。您的音頻 即使在屏幕鎖定並且Ring/Silent開關設置爲 的情況下也會播放。
(此外,檢查this table)
看來,音頻會話類別設置爲AVAudioSessionCategoryPlayback或kAudioSessionCategory_MediaPlayback會自動解決您的問題。
感謝您的回答,但我已經在使用AVAudioSessionCategoryPlaback,它仍然無法正常工作。音樂播放正確,但是當我的合成聲音播放時,沒有任何反應。它只會在我解鎖屏幕後播放。有點奇怪。 – OtoLeo 2012-01-11 15:15:32
確實很奇怪。我希望我能更有幫助。不過,我會檢查所有的基本知識:確保會話不僅被初始化,而且被設置爲活動。 – rahzark 2012-01-11 16:28:07
我終於搞定了。我不得不設置kAudioSessionProperty_OverrideCategoryMixWithOthers。起初,我認爲這不是必需的,因爲我不需要同時播放音樂和聲音。 – OtoLeo 2012-01-11 19:20:30