亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

那個計時和獲取音量的線程

鴻洋,那個計時和獲取音量的線程,當event.down的時候,你沒有讓這個線程停止啊,為什么你這里測試就沒事,我這里測試就報錯了,因為手指起來之后,MediaRecorder就release了,已經置空,獲取不了音量,空指針了。我一直在嘗試停止線程,但總是出錯,還是我看漏了你在哪里寫代碼停止了這個線程了?鴻洋老師你能不能說一下。。

正在回答

5 回答

線程內部設置了while(isRecording),在Up的時候isRecording = false了。當MediaRecorder準備好時,再次開啟:

case?MSG_AUDIO_PREPARED:		
	isRecording?=?true;
	new?Thread(mGetVoiceLevelRunnable).start();


1 回復 有任何疑惑可以回復我~
while?(isRecording)?{
				//如果在錄音那么就每隔一秒獲取一次音量
				try?{
					Thread.sleep(100);//?誒個每隔0.1秒獲取一次
					mTime?+=?0.1f;
					handler.sendEmptyMessage(MSG_VOICE_CHANGE);//?發送消息給handle
				}?catch?(InterruptedException?e)?{
					//?TODO?Auto-generated?catch?block
					e.printStackTrace();
				}
			}


0 回復 有任何疑惑可以回復我~

教程里面忘記寫了,應該在線程里加一個while(isRecording)的判斷。視頻里面沒有加!,下面我貼出來代碼,希望能夠幫助到后來的學者

while (isRecording) {

//如果在錄音那么就每隔一秒獲取一次音量

try {

Thread.sleep(100);// 誒個每隔0.1秒獲取一次

mTime += 0.1f;

handler.sendEmptyMessage(MSG_VOICE_CHANGE);// 發送消息給handle

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


0 回復 有任何疑惑可以回復我~

同問。。

0 回復 有任何疑惑可以回復我~

鴻洋老師,我也是這個線程空指針異常問題,為何我要判空,你的不需要?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android-仿微信語音聊天
  • 參與學習       43189    人
  • 解答問題       248    個

結合自定義View和API,Dialog管理等實現實現微信語音

進入課程

那個計時和獲取音量的線程

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號