2013-01-31 65 views
3

我想在我的Android應用程序中錄製音頻,但我希望使用AAC LC編碼的.mp4格式的音頻文件;可以在我的桌面上播放。所以,使用下面的代碼,我試圖記錄,並且我能夠在我的android上播放它。如何在Android 2.3(薑餅)中以mp4/m4a格式錄製音頻?

mRecorder = new MediaRecorder(); 
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
mRecorder.setOutputFile("/mnt/sdcard/abcapp/test.mp4"); 
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

但是,當我試圖在PC上播放它時,我無法播放mp4文件。我嘗試過使用所有媒體播放器,包括VLC,KMPlayer等,但無法播放它。

最惱人的一點是,有Play商店像「易錄音」,以記錄的MP4,可以使用Windows Media Player進行播放的應用程序。

請幫助。

謝謝

回答

5

找到了解決方案。實際上,不妨稱之爲Android中的一個錯誤。

我從來都沒有停止mRecorder.stop()音頻,但已成立mRecorder.setMaxDuration(10000)。因此,錄音機自動停止,並且沒有將音頻編碼爲AAC或者沒有應用適當的容器,因此無法獲得正確的文件。

的解決方案是簡單的情況下,使用的是mRecorder.setMaxDuration(),實現包含類與MediaRecorder.OnInfoListener以及當所述超時回調發生呼叫mRecorder.stop()

+0

mRecorder.setMaxDuration(10000); mRecorder.setOnInfoListener(新MediaRecorder.OnInfoListener(){ @覆蓋 公共無效onInfo(MediaRecorder先生,詮釋了什麼,整型附加){ mRecorder.stop();} }); –