2015-08-29 158 views
4

我的應用程序中有一些警告聲音,但我確實需要背景音樂(例如Spotify)才能在後臺運行。我通過iOS 9在靜音模式下播放音頻,但保持其他應用程序的音樂播放運行

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 

解決了這個然而,在靜音模式我AVAudioPlayer s爲靜音,但聲音是至關重要的,即使在靜音模式。我讀了AudioServicesPlaySystemSound忽略靜音模式,但它不,至少不在iOS9上。

還有其他的可能嗎?哦,並且請通過說「我會討厭這個用戶」,「不是所謂的無聲模式」這樣的東西來浪費你的時間,...這是一個編程頁面,而不是哲學課。

回答

6

音頻會話範疇AVAudioSessionCategoryAmbient將服從鈴聲/靜音開關的文檔中所述 -

AVAudioSessionCategoryAmbient 類別的應用程序中的聲音播放非主,也就是說,你的應用程序可以在聲音關閉時成功使用...

...您的音頻通過屏幕鎖定和靜音開關(稱爲iPhone上的鈴聲/靜音開關)靜音。

我建議嘗試更適合的類別中包含混合選項 -

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 

AVAudioSessionCategoryPlayback類別在文檔中提到會忽略無聲開關 -

當使用這一類,您的應用音頻會繼續,無聲開關會設置爲無聲或屏幕鎖定。

+0

優秀的答案! – user2875404

+0

這是否仍然適用於iOS 9?當我在通用汽車上試用這款產品時,它不再起作用,而且只是振動。 – lammert