2013-08-25 97 views
0

在我的android應用程序,我試圖將我從AudioRecord類獲得的立體聲音頻輸入分成兩個單聲道。基本上我需要分別處理來自兩個麥克風的音頻輸入,並因此分裂。我通過從audioRecord.read方法中選擇返回的數據的替代樣本(一次2字節)並將其保存在2個單獨的DOUBLE類型數組中 - ArrayL和ArrayR來實現此目的。 現在我需要以這種方式保存這兩個數組,以便能夠以單聲道錄製的頻道播放,例如.mp3格式。 有沒有一種簡單的方法來實現從雙陣列到任何流行音頻格式的這種轉換,並將其保存在外部存儲器中作爲L和R聲道錄製? 請幫幫忙! 由於提前, Neetha保存原始音頻數據爲MP3或類似的格式

回答

0

步驟:

  1. 使用read(byte[] audioData, int offsetInBytes, int sizeInBytes)獲得音頻轉換成字節數組。
  2. 通過將每隔一個字節複製到兩個不同的字節數組中分開兩個通道。
  3. 保存兩個字節數組作爲mp3
  4. 播放它們中的任何一個。

的步驟3,4

String path = "path to new mono mp3 file"; 
File mp3File = new File(path); 
FileOutputStream fos = new FileOutputStream(mp3File) ; 
fos.write(byteArray); 
fos.close(); 

mediaPlayer = MediaPlayer.create(getApplicationContext(),Uri.fromFile(mp3File)); 
mediaPlayer.start(); 
+0

感謝阿尼律陀,我想這我我的代碼。我正面臨一些其他的錯誤,因爲我無法測試這個!非常感謝你的回答。我將此標記爲已回答。希望我很快能夠解決問題並繼續。 – Neetha

相關問題