2012-08-05 42 views
3

我正在Android中創建一個應用程序。我的應用程序錄制音頻並將其存儲在SD卡
中,並以列表格式顯示。我這樣做,但我需要編輯這個音頻,就像我打開錄音
然後我需要從結束再次開始這個錄音,並能夠在該錄音附加音頻。如何編輯或追加錄音?

像:假設我重新編碼「MyRecord01」時間是04.06秒,我想在記錄
添加更多的聲音則必須從04.07開始,並添加一些音頻。

我搜索了很多,但沒有找到任何相對的東西。請直接給我任何鏈接或任何參考。
或給我任何提示。
在此先感謝。

回答

0

這並不難。關鍵是瞭解你錄製的音頻是如何格式化的。如果您使用未壓縮的格式,如WAV或AIFF,這是最簡單的。下面是WAV文件格式的一個(很多)解釋:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

如果數據塊是最後一個,那麼大多數WAV文件可以很容易地追加到(這可能是格式的要求,我無法確切地記得)。如果它不是最後一個,您首先必須複製該文件並對其進行修改,以使該數據塊最後一個。如果文件很大,這可能是一個耗時的步驟。

完成之後,您只需將新的音頻數據附加到數據塊並更新文件中其他位置的幾塊數據,例如數據塊大小(在數據塊中),塊大小(在RIFF描述符)和Subchunk1大小(在fmt塊中)。 (一旦你閱讀了這個解釋,這一切對你來說都會更有意義)。當你追加時,你可能想要對這些數據做些什麼,以便在你的應用程序在附加程序崩潰時很容易修復 - 你不需要想要破壞用戶的數據。

該過程與AIFF類似,但細節有所不同。

對於MP3s而言,我並不是100%確信我的頭腦是如何工作的。如果提供內存服務,這個過程在概念上更容易一些,因爲MP3文件是由一系列獨立的塊組成的,每個塊都有自己的迷你頭。理論上,你可以追加更多的塊。但實際上,它會變得更加複雜,因爲壓縮和諸如ID3標籤之類的東西。

+0

如何在Android中實現?任何相關的文章? – 2012-08-08 05:35:20

+0

我不知道一篇專門介紹WAV/AIFF附加文章的相關文章,但我剛剛給你提供了所有你需要的工具。你將不得不消化它們並提出你自己的解決方案。 – 2012-08-08 14:06:51

1

Here是您需要的代碼。希望對你有效。

如果我發現你的問題不對,請隨時評論並告訴我。