2011-07-08 59 views
1

我正在使用MPMusicPlayerController從iPodMusicPlayer播放設備中的音樂。並定期使用AVPlayer播放警報。代碼是這樣kAudioSessionProperty_OtherMixableAudioShouldDuck有時候音樂不會彈出

-(void) duckMusic 
{ 
    UInt32 on=1; 
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on); 
    AudioSessionSetActive(true); 
} 

-(void) unDuckMusic 
{ 
    UInt32 on=0; 
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on); 
    AudioSessionSetActive(false); 
} 

我只是在玩警報之前調用的第一個方法,我recieving通知AVPlayerItemDidPlayToEndTimeNotification

我得到這個問題後,撥打第二個方法是,有時音樂不警報完成後淡出。通過一些調試,我發現音頻會話屬性是 被正確設置,但由於某種原因它被忽略。

我在測試時也注意到,當音樂不退色時,如果我只是在設備上手動暫停和播放音樂,它就會變得正常。

如何以編程方式處理此問題?

編輯:
當應用程序在後臺

回答

0

你不應該需要設置在unDuckMusic屬性運行,停用會話的問題來了,應該足以允許混合音頻恢復到正常音量。

當我的音頻會話未正確處理音頻中斷而導致音頻會話呼叫以不可預知的方式失敗時出現類似問題。所以確保你處理這些。