2011-01-28 88 views
2

我有一個使用音頻序列做口頭用戶輸入的記錄的應用程序。 只有在用戶按下按鈕時纔會發生短暫的持續時間。如何忽略背景音頻錄製時(使用音頻隊列服務)

我希望允許用戶的背景音樂繼續播放,除非在錄音實際發生時(爲了避免錄製揚聲器中播放的音頻)將其靜音或以低得多的音量播放。

對於我的記錄隊列,我使用的是PlayAndRecord類,和我有OverrideCategoryMixWithOthers屬性設置爲true。

回答

3

當他們添加AudioSessionSetActiveWithFlags API和kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation標誌時,此問題在iOS4 +中就變得不太常見了。

要在錄製時暫停背景音樂,您需要調用AudioSessionSetActive(false),這會停用音頻會話,然後將類別切換到PlayAndRecord模式,並將OverrideCategoryMixWithOthers屬性設置爲false。

現在,激活您與AudioSessionSetActive(真)使用這些設置會話,爲iPod /潘多拉的/ etc會被打斷音頻對話,並會淡出並暫停。

然後,當您的錄音完成後,關閉再次使用

AudioSessionSetActiveWithFlags(假,kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation)會話;

這將通知的背景音樂應用程序,他們的會話不再中斷,他們就可以開始播放音樂。

最後,您可以設置再次使用的MediaPlayback(或同等)模式,並重新設置OverrideCategoryMixWithOthers屬性爲true音頻會議。