[Android] 录音与播放录音实现
16lz
2021-01-23
android开发文档中有一个关于录音的类MediaRecord,一张图介绍了基本的流程:
给出了一个常用的例子:
我在这里实现了一个简单的程序,过程和上述类似,录音以及录音的播放。 1.基本界面如下:
2.工程中各文件内容如下: 2.1 Activity——RecordActivity
MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(PATH_NAME); recorder.prepare(); recorder.start(); // Recording is now started ... recorder.stop(); recorder.reset(); // You can reuse the object by going back to setAudioSource() step recorder.release(); // Now the object cannot be reused
我在这里实现了一个简单的程序,过程和上述类似,录音以及录音的播放。 1.基本界面如下:
2.工程中各文件内容如下: 2.1 Activity——RecordActivity
package com.cxf;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaRecorder;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class RecordActivity extends Activity { private static final String LOG_TAG = "AudioRecordTest";//语音文件保存路径private String FileName = null;//界面控件private Button startRecord; private Button startPlay;private Button stopRecord;private Button stopPlay;//语音操作对象private MediaPlayer mPlayer = null;private MediaRecorder mRecorder = null;/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //开始录音 startRecord = (Button)findViewById(R.id.startRecord); startRecord.setText(R.string.startRecord); //绑定监听器 startRecord.setOnClickListener(new startRecordListener()); //结束录音 stopRecord = (Button)findViewById(R.id.stopRecord); stopRecord.setText(R.string.stopRecord); stopRecord.setOnClickListener(new stopRecordListener()); //开始播放 startPlay = (Button)findViewById(R.id.startPlay); startPlay.setText(R.string.startPlay); //绑定监听器 startPlay.setOnClickListener(new startPlayListener()); //结束播放 stopPlay = (Button)findViewById(R.id.stopPlay); stopPlay.setText(R.string.stopPlay); stopPlay.setOnClickListener(new stopPlayListener()); //设置sdcard的路径 FileName = Environment.getExternalStorageDirectory().getAbsolutePath(); FileName += "/audiorecordtest.3gp"; } //开始录音 class startRecordListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(FileName); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); } catch (IOException e) { Log.e(LOG_TAG, "prepare() failed"); } mRecorder.start();} } //停止录音 class stopRecordListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stub mRecorder.stop(); mRecorder.release(); mRecorder = null;} } //播放录音 class startPlayListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmPlayer = new MediaPlayer();try{mPlayer.setDataSource(FileName);mPlayer.prepare();mPlayer.start();}catch(IOException e){Log.e(LOG_TAG,"播放失败");}} } //停止播放录音 class stopPlayListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmPlayer.release(); mPlayer = null;} }}
2.2 main.xml <?xml version="1.0" encoding="utf-8"?>
2.3 Manifest.xml <?xml version="1.0" encoding="utf-8"?>
2.4 string.xml <?xml version="1.0" encoding="utf-8"?> Record 开始录音 结束录音 开始播放 结束播放
更多相关文章
- Android:为控件绑定监听器
- android ListView中添加ImageButton按钮并绑定事件
- TabLayout绑定Viewpager后不显示文字
- Android Button 控件绑定单击事件
- Windows Phone 7 不温不火学习之《ListBox 数据与Android ListVi
- Android笔记二十三.Android基于事件监听器处理机制