我正在使用 MediaRecorder 录制音频并将其保存为带有 AAC 音频的 .mp4。除了搭载 Android 4.1 的 Nexus S 之外,在我尝试过的所有设备上一切正常。在这些设备上,我要么在 start() 上收到错误(1,-2147483648)(我认为),要么继续正常,但输出文件始终为空。我拥有必要的权限,因为该应用程序可以在其他设备上运行。
mRecorder.reset();
mRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
Log.e("sagasg", what + " " + extra);
}
});
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setAudioSamplingRate(SAMPLING_RATE);
mRecorder.setAudioEncodingBitRate(BIT_RATE);
mFileName = "unnamed-" + mTimeStarted.year + "-" + mTimeStarted.month + "-" + mTimeStarted.monthDay
+ "-" + mTimeStarted.hour + "-" + mTimeStarted.minute + "-" + mTimeStarted.second;
mRecorder.setOutputFile(mFilePath + mFileName + mExtension);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();