android开发文档中有一个关于录音的类MediaRecord

    xiaoxiao2025-10-30  1

    android开发文档中有一个关于录音的类MediaRecord,一张图介绍了基本的流程:

    给出了一个常用的例子: [java]  view plain copy 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 [java]  view plain copy 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{              @Override           public 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{              @Override           public void onClick(View v) {               // TODO Auto-generated method stub                mRecorder.stop();                mRecorder.release();                mRecorder = null;           }                  }       //播放录音       class startPlayListener implements OnClickListener{              @Override           public void onClick(View v) {               // TODO Auto-generated method stub               mPlayer = new MediaPlayer();               try{                   mPlayer.setDataSource(FileName);                   mPlayer.prepare();                   mPlayer.start();               }catch(IOException e){                   Log.e(LOG_TAG,"播放失败");               }           }                  }       //停止播放录音       class stopPlayListener implements OnClickListener{              @Override           public void onClick(View v) {               // TODO Auto-generated method stub               mPlayer.release();               mPlayer = null;           }                  }   }    2.2 main.xml [html]  view plain copy <?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:orientation="vertical" >          <TextView           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:text="@string/hello" />       <Button            android:id="@+id/startRecord"           android:layout_width="fill_parent"           android:layout_height="wrap_content"         />       <Button            android:id="@+id/stopRecord"           android:layout_width="fill_parent"           android:layout_height="wrap_content"         />       <Button            android:id="@+id/startPlay"           android:layout_width="fill_parent"           android:layout_height="wrap_content"         />       <Button            android:id="@+id/stopPlay"           android:layout_width="fill_parent"           android:layout_height="wrap_content"         />   </LinearLayout>    2.3 Manifest.xml [html]  view plain copy <?xml version="1.0" encoding="utf-8"?>   <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.cxf"       android:versionCode="1"       android:versionName="1.0" >          <uses-sdk android:minSdkVersion="4" />          <application           android:icon="@drawable/ic_launcher"           android:label="@string/app_name" >           <activity               android:name=".RecordActivity"               android:label="@string/app_name" >               <intent-filter>                   <action android:name="android.intent.action.MAIN" />                      <category android:name="android.intent.category.LAUNCHER" />               </intent-filter>                          </activity>                 </application>       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />       <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>       <uses-permission android:name="android.permission.RECORD_AUDIO" />   </manifest>    2.4 string.xml [html]  view plain copy <?xml version="1.0" encoding="utf-8"?>   <resources>             <string name="hello"></string>       <string name="app_name">Record</string>       <string name="startRecord">开始录音</string>       <string name="stopRecord">结束录音</string>       <string name="startPlay">开始播放</string>       <string name="stopPlay">结束播放</string>   </resources>   相关资源:python入门教程(PDF版)
    最新回复(0)