Android简单的利用MediaRecorder进行录音的实例代码
2023-06-13 09:15:04 时间
packagecom.ppmeet;
importjava.io.IOException;
importandroid.app.Activity;
importandroid.graphics.PixelFormat;
importandroid.media.MediaRecorder;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.Window;
importandroid.view.WindowManager;
importandroid.widget.Button;
/**
*classname:TestBasicAudio<BR>
*classdescription:BasicRecordAudioDemo<BR>
*
*@version1.002011/12/01
*@authorCODYY)peijiangping
*/
publicclassTestBasicAudioextendsActivity{
privateButtonbutton_start;
privateButtonbutton_stop;
privateMediaRecorderrecorder;
publicvoidonCreate(BundlesavedInstanceState){
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();
}
privatevoidinit(){
button_start=(Button)this.findViewById(R.id.start);
button_stop=(Button)this.findViewById(R.id.stop);
button_stop.setOnClickListener(newAudioListerner());
button_start.setOnClickListener(newAudioListerner());
}
classAudioListernerimplementsOnClickListener{
@Override
publicvoidonClick(Viewv){
if(v==button_start){
initializeAudio();
}
if(v==button_stop){
recorder.stop();//停止刻录
//recorder.reset();//重新启动MediaRecorder.
recorder.release();//刻录完成一定要释放资源
//recorder=null;
}
}
privatevoidinitializeAudio(){
recorder=newMediaRecorder();//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(IllegalStateExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
AndroidMainfest.xml
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.ppmeet"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="8"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".TestBasicAudio"
android:screenOrientation="landscape">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<!--联网权限-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
<!--往SDCard写入数据权限-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--录音权限-->
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
<!--在SDCard中创建与删除文件权限-->
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
</manifest>
相关文章
- 聚焦 Android 11: 大功告成
- 基于chromium for android开发Android浏览器
- android签名命令行,Android系统签名位置及命令
- android短信验证码代码,Android短信验证码自动填写实现代码
- android telephony 原理解析与开发指南_Android逆向pdf
- android toast 自定义时间,Android 自定义 Toast 显示时间「建议收藏」
- android登录注册跳转的代码_Android开发代码
- android 系统浏览器 源码-Android 最最最简单的浏览器代码
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
- 【Android 逆向】函数拦截实例 ( ② 插桩操作 | 保存实际函数入口 6 字节数据 | 在插桩的函数入口写入跳转指令 | 构造拼接桩函数 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ③ ( 执行 compile-ffmpeg.sh clean 命令 | 下载并配置 android-ndk-r10e )
- android线性布局LinearLayout实例代码
- Android简单的照相机程序的实例代码
- android图片压缩的3种方法实例
- Android截屏保存png图片的实例代码
- android实现蓝牙文件发送的实例代码,支持多种机型
- Android创建Menu菜单实例
- Android触屏测试实例代码