录制音频的步骤:
1、创建录音对象
2、指定录音设备(初始化状态)
3、设置录制音频的码率
4、设置录制音频的编码格式
5、设置录制音频存放的位置
6、准备录音(准备状态)
7、开始录音
8、停止录音
xml文件:
1、创建录音对象
2、指定录音设备(初始化状态)
3、设置录制音频的码率
4、设置录制音频的编码格式
5、设置录制音频存放的位置
6、准备录音(准备状态)
7、开始录音
8、停止录音
9、释放资源
录制声音的权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
录制音频的状态图
public class MediaRecorderTest extends Activity {
private MediaRecorder recorder;
private MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.recorder);
//1、创建录音对象
recorder = new MediaRecorder();
//2、指定录音设备(初始化状态)
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//3、设置录制音频的码率
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
//4、设置录制音频的编码格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//5、设置录制音频存放的位置(这里指定手机sdcard的根目录下,文件名为music.mp3)
recorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "music.mp3");
try {
//6、准备录音(准备状态)
recorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//对刚才的录音文件进行播放,创建播放音频对象
player = new MediaPlayer();
try {
//设置要播放的音频文件
player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/music.mp3");
//准备播放音频(准备状态)
player.prepare();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void start(View view){
recorder.start();//7、开始录音
Toast.makeText(this, "正在录音", 0).show();
}
public void stop(View view){
recorder.stop();//8、停止录音
Toast.makeText(this, "结束录音,录音文件以保存到sdcard。", 0).show();
recorder.release();//9、释放资源
}
public void play(View view){
player.start();//开始播放刚才录制的音频
}
}
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="录音"
android:onClick="start"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止"
android:onClick="stop" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放"
android:onClick="play" />
</LinearLayout>