2

我的應用需要記錄視頻,最長時間爲8秒。這已通過MediaRecorder.setMaxDuration(長毫秒)實現。 該應用程序還需要一個頂部的進度條和一個帶有剩餘時間倒計時的標籤。Android - MediaRecorder的回撥開始錄製

這裏的問題是UI和MediaRecorder進程之間存在偏移,這會導致用戶混淆。例如,用戶認爲他/她錄製了某些內容,因爲用戶界面的進度如此,但媒體錄像機早已切斷了視頻。

挑戰是在錄音機實際開始錄音的同時啓動進度條和計數器。 我試過在MediaRecorder.start()後,在第一次修改創建的文件的回調中啓動計時器,但我沒有找到以正確方式實現此目的的方法。我們嘗試爲這些值設置一個硬編碼的偏移量,但當然對於每個設備來說都不一樣。

我希望MediaRecorder有一個回調,告知它實際上已經開始錄製視頻,或者可能是當前的長度。

問題是否清楚?有人解決過這個問題嗎?

回答

0

MediaRecorder有早期切斷音頻的已知問題。我用一個按鈕實現了一個錄音機 - 點擊按鈕停止錄音機實際上產生一個音頻文件,在最後一秒切斷。 不知道您的UI偏移是否是一個單獨的問題,但我會嘗試在用戶嘗試結束時將MediaRecorder延長半秒。您可以通過將最長時間更改爲8.5秒或僅使用以下代碼行來完成此操作:

android.os.SystemClock.sleep(500);