Android中MediaRecorder
现在最火热的计算机技术人工智能、智能识别,当你拿起你的手机呼唤出后台小爱同学,小溪同学,Siri,你说什么他们就能工具你的话来操作手机或者回答,这就说要Android提供的音频采集功能:MediaRecorder
第一步须有拥有麦克风权限
第一种方式是在AndroidManifest.xml中申请权限,不过未经允许偷偷记录用户的隐私是不对的
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
第二种方式是,ActivityCompat.requestPermissions
if(ContextCompat.checkSelfPermission(this,Manifest.permission.RECORD_AUDIO)!=PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(this,newString[]{Manifest.permission.RECORD_AUDIO},1);}else{//执行初始化MediaRecorder的步骤}
第二步是执行初始化
privatevoidinitMR(){mediaRecorder=newMediaRecorder();mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);mediaRecorder.setOutputFile(mFileName);mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);}
setAudioSource是设置麦克风,使用音频来源,
setOutputFormat是设置输出格式,
setOutputFile是设置输出文件,
setAudioEncoder是设置音频编码方式
第三步就可以执行各种操作了
例如:开始录音
ButtonbtStart=(Button)findViewById(R.id.btStartRecord);btStart.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){try{mediaRecorder.prepare();}catch(IOExceptione){Log.e(LOG_TAG,"MR出错!");}mediaRecorder.start();}});
例如:结束录音
ButtonbtStop=(Button)findViewById(R.id.btStopRecord);btStop.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){mediaRecorder.stop();mediaRecorder.release();mediaRecorder=null;}});
最后需要写一下onRequestPermissionsResult
publicvoidonRequestPermissionsResult(intrequestCode,@NonNullString[]permissions,@NonNullint[]grantResults){if(requestCode==1){if(grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){initMR();}else{Toast.makeText(this,"未获得麦克风访问权限",Toast.LENGTH_LONG).show();finish();}}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。