Android简单的利用MediaRecorder进行录音的实例代码

时间:2021-05-19

复制代码 代码如下:
package com.ppmeet;

import java.io.IOException;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

/**
* class name:TestBasicAudio<BR>
* class description:Basic Record Audio Demo<BR>
*
* @version 1.00 2011/12/01
* @author CODYY)peijiangping
*/
public class TestBasicAudio extends Activity {
private Button button_start;
private Button button_stop;
private MediaRecorder recorder;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.TRANSLUCENT);// 让界面横屏
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面标题
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 重新设置界面大小
setContentView(R.layout.main);
init();
}

private void init() {
button_start = (Button) this.findViewById(R.id.start);
button_stop = (Button) this.findViewById(R.id.stop);
button_stop.setOnClickListener(new AudioListerner());
button_start.setOnClickListener(new AudioListerner());
}

class AudioListerner implements OnClickListener {
@Override
public void onClick(View v) {
if (v == button_start) {
initializeAudio();
}
if (v == button_stop) {
recorder.stop();// 停止刻录
// recorder.reset(); // 重新启动MediaRecorder.
recorder.release(); // 刻录完成一定要释放资源
// recorder = null;
}
}

private void initializeAudio() {
recorder = new MediaRecorder();// new出MediaRecorder对象
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
// 设置MediaRecorder的音频源为麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
// 设置MediaRecorder录制的音频格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// 设置MediaRecorder录制音频的编码为amr.
recorder.setOutputFile("/sdcard/peipei.amr");
// 设置录制好的音频文件保存路径
try {
recorder.prepare();// 准备录制
recorder.start();// 开始录制
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}
}

AndroidMainfest.xml
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ppmeet"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestBasicAudio"
android:screenOrientation="landscape" >
<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.INTERNET" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 录音权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

</manifest>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章