AVAudioSessionCategoryAmbient 或 kAudioSessionCategory_AmbientSound
——用于非以語音為主的應用,使用這個category的應用會随着靜音鍵和螢幕關閉而靜音。而且不會中止其他應用播放聲音,能夠和其他自帶應用如iPod,safari等同一時候播放聲音。
注意:該Category無法在背景播放聲音AVAudioSessionCategorySoloAmbient 或 kAudioSessionCategory_SoloAmbientSound
——相似于AVAudioSessionCategoryAmbient 不同之處在于它會中止其他應用播放聲音。 這個category為預設category。該Category無法在背景播放聲音
AVAudioSessionCategoryPlayback 或 kAudioSessionCategory_MediaPlayback
——用于以語音為主的應用,使用這個category的應用不會随着靜音鍵和螢幕關閉而靜音。
可在背景播放聲音AVAudioSessionCategoryRecord 或 kAudioSessionCategory_RecordAudio
———用于須要錄音的應用,設定該category後。除了來電鈴聲,鬧鐘或月曆提醒之外的其他系統聲音都不會被播放。該Category僅僅提供單純錄音功能。
AVAudioSessionCategoryPlayAndRecord 或 kAudioSessionCategory_PlayAndRecord
——用于既須要播放聲音又須要錄音的應用,語音聊天應用(如微信)應該使用這個category。該Category提供錄音和播放功能。
假設你的應用須要用到iPhone上的聽筒。該category是你唯一的選擇,在該Category下聲音的預設出口為聽筒(在沒有外接裝置的情況下)。注意:并非一個應用僅僅能使用一個category,程式應該依據實際須要來切換設定不同的category,舉個樣例,錄音的時候,須要設定為AVAudioSessionCategoryRecord。當錄音結束時。應依據程式須要更改category為AVAudioSessionCategoryAmbient。AVAudioSessionCategorySoloAmbient或AVAudioSessionCategoryPlayback中的一種。<pre name="code" class="objc">設定Category
NSError *setCategoryError = nil;
BOOL success = [[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryAmbient
error: &setCategoryError];
if (!success) { /* handle the error in setCategoryError */ }