【发布时间】:2011-08-07 11:01:05
【问题描述】:
我在安卓系统中工作。如何通过麦克风录制音频文件,如何将录制的文件保存在模拟器中?
【问题讨论】:
标签: android android-emulator android-widget
我在安卓系统中工作。如何通过麦克风录制音频文件,如何将录制的文件保存在模拟器中?
【问题讨论】:
标签: android android-emulator android-widget
我曾尝试在 android 中录制 WAV 文件。但不知何故,它只是记录。仅限立体声的 WAV 文件,您应该使用带有以下参数的录音机
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,RECORDER_AUDIO_ENCODING, bufferSize);
recorder.startRecording();
从记录器中,您需要将所有数据写入一个文件,还需要提供标题信息
那就做吧
recorder.stopRecording();
但我只有一个问题,即使我给 AudioFormat.CHANNEL_IN_MONO..它仍然以立体声格式录制。希望我的回答对你有帮助。
【讨论】:
在 Android 中录制音频很容易。 你需要做的是:
1) 为媒体记录类创建对象:MediaRecorder recorder = new MediaRecorder();
2)在模拟器中,您无法将录制的数据存储在内存中,因此您必须将其存储在SD卡上。因此,首先检查 SD 卡的可用性:然后使用以下代码开始录制。
String status = Environment.getExternalStorageState();
if(status.equals("mounted")){
String path = your path;
}
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
3) 要停止,请覆盖活动的停止方法
recorder.stop();
recorder.release();
【讨论】:
这是一个很好的示例代码教程。
Audio Capture at Android Developer
它包括以下步骤:
【讨论】:
基本上,没有简单的方法可以将音频文件编写为简单的 WAV 文件。 AudioRecorder 以原始线性 PCM 格式生成数据。 Android 的 API 只为您提供音频数据缓冲区。
您需要自己创建 WAV 文件。这对您意味着什么,您需要自己添加所有块:RIFF 标头、FMT 和 DATA 块。
【讨论】: