AVAudioSessionCategory的選擇

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 */ }  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章