麥克風(fēng)通道被占用問題處理

錄音代碼寫完之后,開始測試
測試錄音步驟:

步驟 結(jié)果 原因
第一次啟動APP 獲取權(quán)限 第一次錄音失敗 crash之后岭佳,錄音通道被釋放
獲取權(quán)限(定位?錄音權(quán)限 第二次錄音正常

crash相關(guān)信息:發(fā)現(xiàn)第一次調(diào)用MediaRecorder.start()考抄,出現(xiàn)IllegalStateException蜕该。
具體Log如下:

2451548054587_.pic_hd.png

以上信息不能準(zhǔn)確的發(fā)現(xiàn)出現(xiàn)問題的根本原因。

排除問題:
1.權(quán)限是否打開

AndroidManifest.xml 定義權(quán)限
checkPerMission 

2.是否正常初始化:

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 設(shè)置麥克風(fēng)
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setOutputFile(mFilePath);
mMediaRecorder.setMaxDuration(MAX_LENGTH);
mMediaRecorder.prepare();
mMediaRecorder.start();

3.資源是否正常釋放:

mMediaRecorder.setOnErrorListener(null);
mMediaRecorder.setOnInfoListener(null);
mMediaRecorder.setPreviewDisplay(null);
mMediaRecorder.stop();
mMediaRecorder.reset();
mMediaRecorder.release();
mMediaRecorder = null;

4.打印更多的log剖毯,比如start failed:-xx類型的log圾笨?

01-21 16:08:28.675 E/MediaRecorder( 4722): start failed: -38

查閱資源發(fā)現(xiàn),-38代表麥克風(fēng)通道被占用逊谋。
通道占用判斷方法

private boolean validateMicAvailability(){
    Boolean available = true;
    AudioRecord recorder =
            new AudioRecord(MediaRecorder.AudioSource.MIC, 44100,
                    AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_DEFAULT, 44100);
    try{
        if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED ){
            available = false;
        }

        recorder.startRecording();
        if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){
            recorder.stop();
            available = false;
        }
        recorder.stop();
    } finally{
        recorder.release();
        recorder = null;
    }
    return available;
}

返回true就是沒有被占用擂达。
返回false就是被占用。
調(diào)用完validateMicAvailability方法之后胶滋,Micro通道已經(jīng)被釋放板鬓,其他模塊即可以使用麥克風(fēng)悲敷。

根本原因:
1.由于項目中還引用了科大訊飛離線版語音模塊,語音模塊初始化成功之后俭令,離線喚醒功能開啟之后后德,默認(rèn)打開語音權(quán)限,即占用語音通道抄腔。所以導(dǎo)致錄音功能無法正常使用瓢湃。
2.如果項目既想錄音功能存在,又想使用語音模塊赫蛇,那么同一時刻只能使用一個绵患。比如當(dāng)需要錄音時,主動關(guān)閉語音模塊悟耘,當(dāng)錄音完成之后藏雏,主動初始化語音模塊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末作煌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赚瘦,更是在濱河造成了極大的恐慌粟誓,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件起意,死亡現(xiàn)場離奇詭異鹰服,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)揽咕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門悲酷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亲善,你說我怎么就攤上這事设易。” “怎么了蛹头?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵顿肺,是天一觀的道長。 經(jīng)常有香客問我渣蜗,道長屠尊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任耕拷,我火速辦了婚禮讼昆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骚烧。我一直安慰自己浸赫,他們只是感情好闰围,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掺炭,像睡著了一般辫诅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涧狮,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天炕矮,我揣著相機(jī)與錄音,去河邊找鬼者冤。 笑死肤视,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涉枫。 我是一名探鬼主播邢滑,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼愿汰!你這毒婦竟也來了困后?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤衬廷,失蹤者是張志新(化名)和其女友劉穎摇予,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吗跋,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡侧戴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跌宛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酗宋。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疆拘,靈堂內(nèi)的尸體忽然破棺而出蜕猫,到底是詐尸還是另有隱情,我是刑警寧澤哎迄,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布丹锹,位于F島的核電站,受9級特大地震影響芬失,放射性物質(zhì)發(fā)生泄漏楣黍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一棱烂、第九天 我趴在偏房一處隱蔽的房頂上張望租漂。 院中可真熱鬧,春花似錦、人聲如沸哩治。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽业筏。三九已至憔杨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒜胖,已是汗流浹背消别。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留台谢,地道東北人寻狂。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像朋沮,于是被迫代替她去往敵國和親蛇券。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時樊拓,會觸發(fā)此異常纠亚。 O...
    我想起個好名字閱讀 5,183評論 0 9
  • 視頻直播的流程可以分為如下幾步: 采集 —>處理—>編碼和封裝—>推流到服務(wù)器—>服務(wù)器流分發(fā)—>播放器流播放 1...
    韓瞅瞅閱讀 4,378評論 0 12
  • 因為要結(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,391評論 0 12
  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,815評論 0 5
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫筋夏、插件菜枷、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,033評論 4 62