我有一个以amr_nb格式编码的应用程序,并以amr格式输出文件。我希望将录制的文件分成一系列每个2 KB的amr文件。对如何实现这一目标一无所知。
这是单击“录制按钮”时调用的函数
private void startRecording() {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(getFilename());
recorder.setOnErrorListener(errorListener);
recorder.setOnInfoListener(infoListener);
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这是单击“停止按钮”时调用的方法,
private void stopRecording() {
if (null != recorder) {
recorder.stop();
recorder.reset();
recorder.release();
recorder = null;
}
}
答案 0 :(得分:0)
http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxFileSize(long)
然后将侦听器注册到在达到最大文件大小时获得回调的MediaRecorder,然后设置MediaRecorder以记录下一个文件。请注意,这不会产生一系列无间隙文件(好的?)。