录制音频的步骤:
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>
时间: 2024-10-10 01:57:08