-
Category
-
AVAudioSessionCategoryAmbient
1.只支持播放
2.當(dāng)按“靜音”或者鎖屏?xí)o音
3.不會引起不支持混音的App中斷
-
AVAudioSessionCategorySoloAmbient
1.只支持播放
2.當(dāng)按“靜音”或者鎖屏?xí)o音
3.會引起不支持混音的App中斷
-
AVAudioSessionCategoryPlayback
1.只支持播放
2.當(dāng)按“靜音”或者鎖屏不會靜音
3.默認會引起不支持混音的App中斷挽懦,但是,如果你想要在用這個category的時候也支持混合播放木人,那么得加AVAudioSessionCategoryOptionMixWithOthers信柿,這是一個option
-
AVAudioSessionCategoryRecord(作者暫時沒有做過錄音相關(guān))
1.只支持錄音,不支持播放(這個類的作用是在系統(tǒng)上幾乎所有的輸出都保持沉默虎囚,只要會話是活動的)
2.繼續(xù)錄音當(dāng)你的應(yīng)用程序轉(zhuǎn)換為背景(例如角塑,當(dāng)屏幕鎖),到uibackgroundmodes關(guān)鍵在你的信息屬性列表文件中添加音頻的價值淘讥。
3.用戶必須授予音頻錄制的權(quán)限圃伶。
4.使用這個類不防止音頻會議被電話,報警中斷蒲列,或其他非混合音頻會議
-
AVAudioSessionCategoryPlayAndRecord
1.用于錄音(輸入)和播放(輸出)音頻的類別窒朋,如用于VoIP(因特網(wǎng)語音協(xié)議)的應(yīng)用程序。
2.當(dāng)按“靜音”或者鎖屏不會靜音蝗岖。
- 用于既需要播放聲音又需要錄音的應(yīng)用侥猩。該Category提供錄音和播放功能。如果你的應(yīng)用需要用到iPhone上的聽筒抵赢,該category是你唯一的選擇欺劳,在該Category下聲音的默認出口為聽筒(在沒有外接設(shè)備的情況下)。
4.默認會引起不支持混音的App中斷铅鲤,但是划提,如果你想要在用這個category的時候也支持混合播放,那么得加AVAudioSessionCategoryOptionMixWithOthers邢享,這是一個option
-
AVAudioSessionCategoryMultiRoute(沒用過)
-
AVAudioSessionCategoryAudioProcessing(沒用過鹏往,iOS10被遺棄)
-
Options
-
AVAudioSessionCategoryOptionMixWithOthers
1.決定是否需要和其它app混音
這個option只在category為AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategoryPlayback, AVAudioSessionCategoryMultiRout
2.如果category為AVAudioSessionCategoryAmbient,那么這個option是默認設(shè)置的
- 如果option設(shè)置為AVAudioSessionCategoryOptionDuckOthers或者
AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers骇塘,那么這個option也是自動設(shè)置的
-
AVAudioSessionCategoryOptionDuckOthers
1.使來自其他會話的音頻被回避(音量減幸谅摹)韩容,而此會話中的音頻播放,就是混合播放的時候會把其它app播放聲音減小
2.只有category為 AVAudioSessionCategoryAmbient, AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategoryPlayback, AVAudioSessionCategoryMultiRoute有效
-
AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers
1.只有category為 AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategoryPlayback, and AVAudioSessionCategoryMultiRoute有效
2.確定當(dāng)應(yīng)用程序的音頻內(nèi)容被播放時,另一應(yīng)用程序的連續(xù)通話內(nèi)容是否暫停(這個暫未實現(xiàn))
3.當(dāng)您使用此選項配置音頻會話類別時唐瀑,當(dāng)您停用會話時群凶,您應(yīng)該通知系統(tǒng)上的其他應(yīng)用程序,以便它們可以恢復(fù)音頻播放介褥。為此座掘,請使用
avaudiosessionsetactiveoptionnotifyothersondeactivation
選項
AVAudioSessionCategoryOptionAllowBluetooth
1.確定藍牙免提設(shè)備出現(xiàn)可用的輸入途徑
2.只有在category為category 為[AVAudioSessionCategoryPlayAndRecord或者
AVAudioSessionCategoryRecord才有效
3.設(shè)置此選項需要允許路由音頻輸入和輸出到配對的藍牙免提模式(HFP)裝置。如果清除此選項柔滔,配對的藍牙免提不顯示為可用的音頻輸入線路
4.如果應(yīng)用程序使用 setPreferredInput:error:
選擇一個藍牙免提輸入法溢陪,輸出將自動更改為相應(yīng)的藍牙免提輸出。同樣睛廊,選擇藍牙免提輸出使用 mpvolumeview 對象的路徑選擇器形真,將自動改變輸入到相應(yīng)的藍牙免提輸入。因此超全,音頻輸入和輸出會被路由到藍牙免提裝置即使選擇只輸入或輸出
AVAudioSessionCategoryOptionAllowBluetoothA2DP
1.高級音頻分布(A2DP)是高帶寬音頻輸出的(沒有輸入)
2.系統(tǒng)自動設(shè)置成A2DP的option如果你的category為avaudiosessioncategoryambient
avaudiosessioncategorysoloambient或avaudiosessioncategoryplayback
類別.
3.從iOS 10開始咆霜,應(yīng)用程序使用
avaudiosessioncategoryplayandrecord
可能也會允許路由輸出配對藍牙設(shè)備。要啟用此行為嘶朱,您需要在設(shè)置音頻會話類別時傳遞這個類別選項
4.音頻會話使用
avaudiosessioncategorymultiroute
或avaudiosessioncategoryrecord
類別隱式清除此選項蛾坯。如果清除此選項,配對的藍牙設(shè)備不顯示為可用的音頻輸出線路
5.如果這個option和AVAudioSessionCategoryOptionAllowBluetooth
疏遏,那么FHP優(yōu)先級高
AVAudioSessionCategoryOptionDefaultToSpeaker
1.確定音頻從內(nèi)置揚聲器輸出脉课,而不是輸入
2.只有在category為AVAudioSessionCategoryPlayAndRecord下有效
3.如果沒有其他配件,如耳機财异,使用的音頻將總是路由到揚聲器而不是接收器
3.當(dāng)使用此選項時倘零,用戶手勢將會影響。例如戳寸,插入耳機會導(dǎo)致路線改變耳機麥克風(fēng)/耳機呈驶,拔出耳機會導(dǎo)致路線改變內(nèi)置麥克風(fēng)/揚聲器(相對于內(nèi)置麥克風(fēng)/接收機)
4.在使用USB輸入唯一附件的情況下,音頻輸入來自附件疫鹊,輸出將路由到耳機(如果有耳機)或揚聲器袖瞻,如果耳機沒有插入。只是將音頻路由到揚聲器而不是接收器拆吆,在音頻通常會到達接收器的情況下
-
Mode
AVAudioSessionModeDefault
1.對于所有的category都有效
AVAudioSessionModeVoiceChat
1.如果您的應(yīng)用程序正在執(zhí)行雙向語音通信虏辫,如使用Internet語音協(xié)議(VoIP),請指定此模式
2.只有在category為AVAudioSessionCategoryPlayAndRecord有效
AVAudioSessionModeVideoChat
1.如果您的應(yīng)用程序參與在線視頻會議锈拨,請指定此模式
2.只有在category為AVAudioSessionCategoryPlayAndRecord
或者AVAudioSessionCategoryRecord情況下才有效
AVAudioSessionModeGameChat
1.這種模式是由游戲套件代表使用游戲工具包的語音聊天服務(wù)的應(yīng)用程序設(shè)置的
2.只有在category為AVAudioSessionCategoryPlayAndRecord有效
3.不要直接設(shè)置此模式。如果你需要類似的行為并沒有使用GKVoiceChat 對象羹唠,使用
AVAudioSessionModeVoiceChat
或
AVAudioSessionModeVideoChat
代替
AVAudioSessionModeVideoRecording
1.如果應(yīng)用程序正在錄制視頻奕枢,請指定此模式
2.只有在category為AVAudioSessionCategoryPlayAndRecord
或者AVAudioSessionCategoryRecord情況下才有效
3.在具有多個內(nèi)置麥克風(fēng)的設(shè)備上娄昆,使用與攝像機最近的麥克風(fēng)
AVAudioSessionModeMeasurement
1.如果應(yīng)用程序正在執(zhí)行音頻輸入或輸出測量,請指定此模式
2.只有在category為AVAudioSessionCategoryPlayback缝彬,
AVAudioSessionCategoryRecord萌焰,
AVAudioSessionCategoryPlayAndRecord,情況下有效
AVAudioSessionModeMoviePlayback
1.如果應(yīng)用程序播放電影內(nèi)容谷浅,請指定此模式
2.只有在category為AVAudioSessionCategoryPlayback有效
AVAudioSessionModeSpokenAudio
如果你的應(yīng)用程序播放連續(xù)的音頻扒俯,并且當(dāng)另一個應(yīng)用程序(如導(dǎo)航或應(yīng)用程序)播放少量音頻時,請指定此模式
一疯。撼玄。。墩邀。掌猛。。持續(xù)更新