簡體   English   中英

Android-連接編碼的mp3數據和mp3文件數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM