Android MediaRecorder与MediaPlayer:录音、保存与播放实战教程

5 下载量 190 浏览量 更新于2024-08-29 收藏 63KB PDF 举报
在Android编程中,实现录音和音频文件的保存与播放功能是常见的需求,本文将详细介绍如何通过系统提供的`MediaRecorder`类来实现这个过程,并提供一个基础的示例代码和XML布局。首先,让我们了解一下主要的步骤: 1. 准备工作: - 在Android项目中,确保添加了所需的权限。在`AndroidManifest.xml`中添加`<uses-permission android:name="android.permission.RECORD_AUDIO" />`,以便获取录音权限。 2. 创建MediaRecorder对象: - 创建一个`MediaRecorder`对象,初始化录音路径,设置音频编码格式、采样率、位深度等参数。例如: ```java MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); File audioFile = new File(getFilesDir(), "myRecording.3gp"); recorder.setOutputFile(audioFile.getAbsolutePath()); ``` 3. 开启录音: - 设置好录音参数后,调用`prepare()`方法准备录制,然后使用`start()`开始录音。 ```java try { recorder.prepare(); recorder.start(); } catch (IOException e) { e.printStackTrace(); } ``` 4. 停止录音: 当需要结束录音时,调用`stop()`方法停止录音,然后释放资源。 ```java recorder.stop(); recorder.release(); ``` 5. 保存录音文件: 录音完成后,`stop()`和`release()`方法会自动保存录音文件,如果需要手动控制,可以使用`setOnCompletionListener`监听录音完成事件。 6. 播放录音: 使用`MediaPlayer`类加载和播放录音文件。创建一个`MediaPlayer`实例,设置播放路径,然后调用`prepare()`和`start()`方法播放。 ```java MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(audioFile.getAbsolutePath()); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.start(); } }); mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mediaPlayer, int what, int extra) { return false; } }); ``` 7. XML布局: 根据描述中的代码片段,主界面(MainActivity)包含了三个按钮:开始录音(start)、停止录音(stop)和播放(play)。布局文件中,这些按钮通过`id`引用,分别对应相应的功能操作。 以上就是实现Android应用中录音、保存和播放功能的基本步骤和XML布局设计。为了方便理解,这里还提供了简化的`start`、`stop`和`play`按钮的代码: ```xml <Button android:id="@+id/start" ... android:text="@string/start" /> <Button android:id="@+id/stop" ... android:text="@string/stop" /> <Button android:id="@+id/paly" ... android:text="@string/play" /> ``` 实际开发中,你需要在对应的Java代码中编写事件处理器,连接这些按钮的点击事件到相应的录音和播放操作。源码下载部分则需要从原文链接或开发者自己的GitHub仓库获取完整的项目代码。通过阅读源码,你可以看到如何将上述步骤整合到实际的Android应用程序中。