2017-01-16 13 views
1

我對於使用Java中的音頻文件以及Android上相當新穎(我知道一些基礎知識)相當陌生。在Java中添加.aac文件/ Android

我有兩個使用MediaRecorder錄製的.aac文件,我需要在錄製完成後合併這兩個文件。我想我會先用Java嘗試它,然後將它移到Android上,因爲很多東西看起來很相似?

我在想什麼是達到這個目標的最好方法?到目前爲止,我已經將.aac文件轉換爲字節數組併合並這些文件,但這隻會生成第一個文件(來自第一個字節數組),其文件大小較大,並且沒有額外的音頻。

我想也許這是由於音頻標題?我應該找到一種方法來定位這些字節並將它們從第二個中刪除(如果是的話是否有解釋標題的位置的文檔?)

或者我也讀過關於使用.wavs而不是使用MediaRecorder的情況使用AudioRecord ,創建兩個PCM的連接,然後轉換爲.wav?我能將這個.wav轉換成.aac嗎?

什麼是最快的實現方式?有沒有人有任何額外的文件可以幫助?

+0

一般服用2個文件的字節數組,並追加一個到另一個是不會讓一個有效的文件。你很幸運,即使原始數據仍然可以播放。要做到這一點,你將不得不實際閱讀AAC格式並學習如何操縱它。或者找一個這樣做的圖書館。 –

+0

我真的沒有想到將兩者混合在一起,但我讀了關於他們是原始音頻文件的地方,並有一個有趣的想法或兩個。謝謝。 – Smallbro

+0

一旦你通過標題,wav實際上就是原始音頻。當然,WAV格式與數百個變體相矛盾。但是,如果你有未加入的原始wav數據,你可以將這兩個數據結合起來並重新編碼爲aac。 –

回答

1

感謝Gabe,送我正確的路線。

最後,我放棄了使用.aac並嘗試刪除標題。我用AudioRecord錄製.pcm文件,然後連接這些文件並保存爲.wav。

我的確聽到了快速轉發和失真的聲音,並且最初認爲這取決於採樣率,結果證明我正在將短信轉換爲丟失信息的字節,從而加速並導致失真的原因。

希望這可以幫助別人,我最終可能會添加一些.aac編碼庫來減小尺寸。

一些鏈接,我發現對我的旅程有幫助。

https://github.com/newventuresoftware/WaveformControl

Android AudioRecord example

How to convert .pcm file to .wav or .mp3?

http://www.topherlee.com/software/pcm-tut-wavformat.html