回答

2

Mp4Parser是基於java的庫,可讓您操作h264和aac編碼流。它不是一個編碼器或解碼器。但您可以連接或修剪流,切換流或將流添加到mp4容器等。

對於實現暫停/恢復功能,您可以使用MediaRecorder在每次用戶按下暫停(然後恢復)時創建新的錄製文件。 所以你將有多個mp4文件,然後你可以使用Mp4Parser縫合在一起。

問題的這種解決方案:

所記錄mp4文件的每個流將具有不同的長度(差將在〜100毫秒至少這就是我注意到)。當你拼接4-5個文件時,音頻和視頻將失去同步。

因此,在拼接視頻之前,您可以剪切/剪裁最長的流,以便使用該庫匹配其他流。因爲庫不是編碼器/解碼器,因此您只能剪切/裁剪整個幀(音頻或視頻)。但是,這仍然會減少流長度之間的差異。這種丟失的幀不總是顯而易見的,所以你可能會逃避它。

庫存儲庫中有足夠的例子,所以我不在這裏發佈任何代碼。 Here是另一篇文章,我相信已經完成類似於我提到的第一步(我還沒有嘗試OP提到的代碼)。