35.關(guān)于AVAudioSession錄音中斷問題

錄音代碼不寫了。

問題:
在使用VLC播放視頻時錄音,切換聲道會導(dǎo)致錄音中斷。
因為VLC播放器中設(shè)置了AVAudioSession.sharedInstance().setActive(false)導(dǎo)致的。

原因:
因為錄音需要保證你的AVAudioSession為激活狀態(tài)。中斷導(dǎo)致錄音暫停。

解決:
修改VLC播放器切換聲道代碼,不讓它控制AVAudioSession的active

一、
AVAudioSession類由AVFoundation框架引入。每個IOS應(yīng)用都有一個音頻會話。這個會話可以被AVAudioSession類的sharedInstance類方法訪問,如下:
AVAudioSession*audioSession = [AVAudioSession sharedInstance];

在獲得一個AVAudioSession類的實例后,你就能通過調(diào)用音頻會話對象的setCategory:error:實例方法,來從IOS應(yīng)用可用的不同類別中作出選擇。下面列出了可供使用的音頻會話類別:

AVAudioSessionCategoryAmbient:
用于非以語音為主的應(yīng)用,隨著靜音鍵和屏幕關(guān)閉而靜音。不中止其它應(yīng)用播放聲音,可以和其它自帶應(yīng)用如iPod,safari等同時播放聲音。鎖屏?xí)r,應(yīng)用將停止所有正在回放的音頻。如果正當iPod播放一手歌時,你開始播放音頻,將設(shè)備設(shè)為靜音模式并不能停止你的音頻回放。

AVAudioSessionCategorySoloAmbient(默認類別)
這個類別非常像AVAudioSessionCategoryAmbient類別,除了會停止其他程序的音頻回放,比如iPod程序。當設(shè)備被設(shè)置為靜音模式,你的音頻回放將會停止。

AVAudioSessionCategoryPlayback
會靜止其他應(yīng)用的音頻回放(比如iPod應(yīng)用的音頻回放)。你可以使用AVAudioPlayer的prepareToPlay和play方法,在你的應(yīng)用中播放聲音。屏幕被鎖定或者設(shè)備為靜音模式,音頻會放都會繼續(xù)。

AVAudioSessionCategoryRecord
這會停止其他應(yīng)用的聲音(比如iPod)并讓你的應(yīng)用也不能初始化音頻回放(比如AVAudioPlayer)。在這種模式下,你只能進行錄音。使用這個類別,調(diào)用AVAudioPlayer的prepareToPlay會返回YES,但是調(diào)用play方法將返回NO。主UI界面會照常工作。這時,即使你的設(shè)備屏幕被用戶鎖定了,應(yīng)用的錄音仍會繼續(xù)。

AVAudioSessionCategoryPlayAndRecord
這個類別允許你的應(yīng)用中同時進行聲音的播放和錄制。當你的聲音錄制或播放開始后,其他應(yīng)用的聲音播放將會停止。主UI界面會照常工作。這時,即使屏幕被鎖定或者設(shè)備為靜音模式,音頻回放和錄制都會繼續(xù)。

AVAudioSessionCategoryAudioProcessing
這個類別用于應(yīng)用中進行音頻處理的情形,而不是音頻回放或錄制。設(shè)置了這種模式,你在應(yīng)用中就不能播放和錄制任何聲音。調(diào)用AVAPlayer的prepareToPlay和play方法都將返回NO。其他應(yīng)用的音頻回放,比如iPod,也會在此模式下停止。

//判斷如果其他應(yīng)用有正在播放的音頻 恢復(fù)播放。

[[AVAudioSession sharedInstance] setActive:NO
                                 withFlags:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation
                                     error:nil];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容