2012-09-19 89 views
1

我創建了音頻軌道和音頻記錄器對象,並試圖將麥克風的聲音回送給揚聲器。Android AudioTrack和AudioRecord奇怪的行爲

爲此,我創建了一個任務,用於從音頻錄製任務中「讀取」音頻數據並將其「寫回」到音頻軌道。它似乎工作正常。然而與此應用程序播放嘗試一些數據操縱我才知道,這個任務是複製的音軌數據和寫回來幾乎什麼也不做 - 我刪除了它,只用兩行呆:

audioRecord.startRecording(); 
    audioTrack.play(); 

沒有讀或寫 - 應用程序繼續工作 - 即麥克風數據呼應揚聲器!在實踐中,我試圖執行的所有讀寫操作似乎都被忽略了!

一些其他意外的行爲:

我試圖阻止這一進程買調用AudioTrack.stop()AudioTrack.pause() - 什麼也沒有發生,停止播放音頻的唯一方法是通過調用AudioRecord.stop(),但是彎腰的AudioRecord後,我找不到任何辦法重新啓動它。

有沒有其他人經歷過這個呢?有沒有人有辦法解決嗎? 任何人都可以解釋Android AudioTrackAudioRecord這種奇怪的行爲?

回答

2

這3條線路應該爲你工作的時候要停止audioTrack

audioTrack.flush(); 
audioTrack.stop(); 
audioTrack.release(); 
+0

我的主要問題是,爲什麼在那裏直接連接麥克風和揚聲器之間的內部創建的,沒有任何方式這個奇怪的無證行爲來控制它。 –