使用安卓MediaRecorder錄製音頻時,多個音頻文件的合併操作

      使用MediaRecorder錄製音頻時,由於沒有提供暫停的API,所以在暫停操作時,只能先進行保存操作,然後再繼續錄製下一段,最後再對多個音頻文件的合併操作。

MediaRecorder提供的音頻輸出格式有RAW_AMR,AMR_NB,AMR_WB,3GP,MPG4這些格式。在使用ffmpeg做一些多媒體資源的轉換操作的時候,多多音頻的採樣率有要求。其中RAW_AMR和AMR_NB的採樣率爲8KHZ,而AMR_WB爲16KHZ。我在實際中與到的情況是:使用ffmpeg來生成MP4文件時,8KHZ的採樣率的音頻不能進行MP4的轉碼操作,但使用使用16KHZ的採樣率成功轉碼

      由於使用MediaRecorder錄製只能是分段錄製,所以最關鍵的操作就在於,最後對多個音頻文件的合併操作,這一步操作最重要的就是去掉出第一個文件之外的頭文件信息,其中RAW_AMR,AMR_NB的頭文件長度固定爲6個字節,AMR_WB的頭文件長度爲9個字節。知道頭文件長度之後,剩下的操作就簡單多了。

    

示例代碼:

<script src="https://code.csdn.net/snippets/758781.js"></script>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章