要使用Android的MediaRecorder录制Wav或Mp3文件,可以按照以下步骤进行操作:
import android.media.MediaRecorder;
import android.os.Environment;
public class MainActivity extends AppCompatActivity {
private MediaRecorder mediaRecorder;
private String audioFilePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建音频文件保存路径
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
audioFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + timeStamp + ".wav";
// 初始化MediaRecorder
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setOutputFile(audioFilePath);
// 开始录音
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止录音并释放资源
mediaRecorder.stop();
mediaRecorder.release();
}
}
上述代码中,我们首先添加了所需的录音权限。然后,在onCreate方法中,我们创建了一个用于保存录音文件的路径,并初始化了MediaRecorder对象。我们设置了音频源为MIC,输出格式为MPEG_4,音频编码为AAC,并指定了输出文件的路径。最后,我们调用prepare方法准备录音,然后调用start方法开始录音。
在onDestroy方法中,我们停止录音并释放MediaRecorder的资源。
请注意,上述代码中只演示了如何录制MP4文件,如果您想录制WAV文件,只需将setOutputFormat方法的参数改为MediaRecorder.OutputFormat.THREE_GPP,并将setAudioEncoder方法的参数改为MediaRecorder.AudioEncoder.AMR_NB。
上一篇:Android的MediaPlayer可以播放网络上的音频文件,但无法播放.ape、.flac这样大尺寸的音频文件。
下一篇:Android的minifyEnabled=true、shrinkResources=true会导致应用程序崩溃。