@coder-pig
2015-11-22T09:00:02.000000Z
字数 2061
阅读 2085
Android基础入门教程
本节是Android多媒体基本API调用的最后一节,带来的是MediaRecord的简单使用,
用法非常简单,我们写个例子来熟悉熟悉~
运行结果:

实现代码:
布局代码:activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id="@+id/btn_control"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="开始录音" /></RelativeLayout>
MainActivity.java:
public class MainActivity extends AppCompatActivity {private Button btn_control;private boolean isStart = false;private MediaRecorder mr = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_control = (Button) findViewById(R.id.btn_control);btn_control.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(!isStart){startRecord();btn_control.setText("停止录制");isStart = true;}else{stopRecord();btn_control.setText("开始录制");isStart = false;}}});}//开始录制private void startRecord(){if(mr == null){File dir = new File(Environment.getExternalStorageDirectory(),"sounds");if(!dir.exists()){dir.mkdirs();}File soundFile = new File(dir,System.currentTimeMillis()+".amr");if(!soundFile.exists()){try {soundFile.createNewFile();} catch (IOException e) {e.printStackTrace();}}mr = new MediaRecorder();mr.setAudioSource(MediaRecorder.AudioSource.MIC); //音频输入源mr.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB); //设置输出格式mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB); //设置编码格式mr.setOutputFile(soundFile.getAbsolutePath());try {mr.prepare();mr.start(); //开始录制} catch (IOException e) {e.printStackTrace();}}}//停止录制,资源释放private void stopRecord(){if(mr != null){mr.stop();mr.release();mr = null;}}}
最后别忘了在AndroidManifest.xml中添加下述权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.RECORD_AUDIO"/>
好的,就是这么简单~
好的,本节内容非常简单,就是MediaRecorder的使用而已,大概是整套教程中最精简的一节
了吧~嘿嘿~

