本节是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">
-
- <Button
- android: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;
-
- @Override
- protected 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() {
- @Override
- public 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的使用而已,大概是整套教程中最精简的一节 了吧~嘿嘿~