![](/img/trans.png)
[英]Android: LAME converts PCM data from AudioRecoder to MP3, but the MP3 file has some noise
[英]Android - Concatenate encoded mp3 data and mp3 file data
我需要創建由來自兩個不同來源的音頻數據組成的音頻文件。 一個來自麥克風,另一個來自已錄制的音頻mp3文件。
我正在使用Lame庫將讀取的數據從麥克風轉換為mp3,並將其寫入FileOutputStream,如下所示:
bytesRead = audioRecord.read(buffer, 0, minBuffer);
int bytesEncoded = androidLame.encode(buffer, buffer, bytesRead, mp3buffer);
outputStream.write(mp3buffer, 0, bytesEncoded);
而且我有InputStream(mp3文件),我正在將其寫入相同的FileOutputStream中,如下所示:
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int readBytes = 0;
while ((readBytes = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, readBytes);
}
我需要交替使用這兩個源,並且一次只能從一個源寫入。 而且,我希望輸出為mp3格式。
目前,如果我僅從一個來源寫入數據,這些代碼就可以正常工作。
但是,例如,當我首先寫入來自文件的數據並停止它,然后繼續寫入來自麥克風的數據時,它就無法正常工作。
我找到了原因 。 事實證明,要連接來自不同來源的mp3數據,它們應具有相同的通道和相同的采樣率。
解決方案是將mp3文件解碼回PCM,並使用與編碼從Mic讀取的數據相同的配置對它們進行編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.