#pragma mark -- Values for the category property -- /* Use this category for background sounds such as rain, car engine noise, etc. Mixes with other music. */ AVF_EXPORT NSString *const AVAudioSessionCategoryAmbient; /* Use this category for background sounds. Other music will stop playing. */ AVF_EXPORT NSString *const AVAudioSessionCategorySoloAmbient; /* Use this category for music tracks.*/ AVF_EXPORT NSString *const AVAudioSessionCategoryPlayback; /* Use this category when recording audio. */ AVF_EXPORT NSString *const AVAudioSessionCategoryRecord; /* Use this category when recording and playing back audio. */ AVF_EXPORT NSString *const AVAudioSessionCategoryPlayAndRecord; /* Use this category when using a hardware codec or signal processor while not playing or recording audio. */ AVF_EXPORT NSString *const AVAudioSessionCategoryAudioProcessing __TVOS_PROHIBITED; /* Use this category to customize the usage of available audio accessories and built-in audio hardware. For example, this category provides an application with the ability to use an available USB output and headphone output simultaneously for separate, distinct streams of audio data. Use of this category by an application requires a more detailed knowledge of, and interaction with, the capabilities of the available audio routes. May be used for input, output, or both. Note that not all output types and output combinations are eligible for multi-route. Input is limited to the last-in input port. Eligible inputs consist of the following: AVAudioSessionPortUSBAudio, AVAudioSessionPortHeadsetMic, and AVAudioSessionPortBuiltInMic. Eligible outputs consist of the following: AVAudioSessionPortUSBAudio, AVAudioSessionPortLineOut, AVAudioSessionPortHeadphones, AVAudioSessionPortHDMI, and AVAudioSessionPortBuiltInSpeaker. Note that AVAudioSessionPortBuiltInSpeaker is only allowed to be used when there are no other eligible outputs connected. */ AVF_EXPORT NSString *const AVAudioSessionCategoryMultiRoute NS_AVAILABLE_IOS(6_0);
AVAudioSessionCategoryAmbient 或 kAudioSessionCategory_AmbientSound微信
用於非以語音爲主的應用,使用這個category的應用會隨着靜音鍵和屏幕關閉而靜音。而且不會停止其它應用播放聲音,能夠和其它自帶應用如iPod,safari等同時播放聲音。注意:該Category沒法在後臺播放聲音app
AVAudioSessionCategorySoloAmbient 或 kAudioSessionCategory_SoloAmbientSoundide
相似於AVAudioSessionCategoryAmbient 不一樣之處在於它會停止其它應用播放聲音。 這個category爲默認category。該Category沒法在後臺播放聲音ui
AVAudioSessionCategoryPlayback 或 kAudioSessionCategory_MediaPlaybackthis
用於以語音爲主的應用,使用這個category的應用不會隨着靜音鍵和屏幕關閉而靜音。可在後臺播放聲音編碼
AVAudioSessionCategoryRecord 或 kAudioSessionCategory_RecordAudiospa
用於須要錄音的應用,設置該category後,除了來電鈴聲,鬧鐘或日曆提醒以外的其它系統聲音都不會被播放。該Category只提供單純錄音功能。code
AVAudioSessionCategoryPlayAndRecord 或 kAudioSessionCategory_PlayAndRecordorm
用於既須要播放聲音又須要錄音的應用,語音聊天應用(如微信)應該使用這個category。該Category提供錄音和播放功能。若是你的應用須要用到iPhone上的聽筒,該category是你惟一的選擇,在該Category下聲音的默認出口爲聽筒(在沒有外接設備的狀況下)。input
AVAudioSessionCategoryAudioProcessing
使用硬件解碼器處理音頻,該音頻會話使用期間,不能播放或錄音
這個類別用於音頻處理,好比編碼解碼時/不播放音頻/未錄音時使用。設置了這種模式,你在應用中就不能播放和錄製任何聲音。調用AVAPlayer
的prepareToPlay
和play
方法都將返回false
。其餘應用的音頻也會在此模式下中止。
這個類別能夠實現同時能夠有多種輸出,例如:usb和耳機同時輸出,但並不是全部輸入輸出方式均支持.輸入方式僅包括:AVAudioSessionPortUSBAudio/AVAudioSessionPortHeadsetMic AVAudioSessionPortBuiltInMic
;輸出僅包括:AVAudioSessionPortUSBAudio /AVAudioSessionPortLineOut /AVAudioSessionPortHeadphones /AVAudioSessionPortHDMI AVAudioSessionPortBuiltInSpeaker
注意:並非一個應用只能使用一個category,程序應該根據實際須要來切換設置不一樣的category,舉個例子,錄音的時候,須要設置爲AVAudioSessionCategoryRecord,當錄音結束時,應根據程序須要更改category爲AVAudioSessionCategoryAmbient,AVAudioSessionCategorySoloAmbient或AVAudioSessionCategoryPlayback中的一種。