现在最火热的计算机技术人工智能,智能识别,当你拿起你的手机呼唤出后台小爱同学,小溪同学,Siri,你说什么他们就能工具你的话来操作手机或者回答,这就说要安卓提供的音频采集功能:MediaRecorder
<强>第一步须有拥有麦克风权限强>
第一种方式是在AndroidManifest.xml中申请权限,不过未经允许偷偷记录用户的隐私是不对的
<>之前,,,,& lt; uses-permission android: name=癮ndroid.permission.RECORD_AUDIO",/在第二种方式是,,ActivityCompat.requestPermissions
<>之前,,,,,,,,如果(ContextCompat.checkSelfPermission(这一点, ,,,,,,,,,,,,,,,Manifest.permission.RECORD_AUDIO) ,,,,,,,,,,,,,,,,=,PackageManager.PERMISSION_GRANTED) { ,,,,,,,,,,,ActivityCompat.requestPermissions(这一点, ,,,,,,,,,,,,,,,,,,,new String [] {Manifest.permission.RECORD_AUDIO}, 1); ,,,,,,,}else { ,,,,,,,,,,,//执行初始化MediaRecorder的步骤 ,,,,,,,}<强>第二步是执行初始化强>
<>之前,private void  initMR (), { ,,,,,,,mediaRecorder =, new MediaRecorder (); ,,,,,,,mediaRecorder.setAudioSource (MediaRecorder.AudioSource.MIC); ,,,,,,,mediaRecorder.setOutputFormat (MediaRecorder.OutputFormat.THREE_GPP); ,,,,,,,mediaRecorder.setOutputFile (mFileName); ,,,,,,,mediaRecorder.setAudioEncoder (MediaRecorder.AudioEncoder.AMR_NB); ,,,}
<强>第三步就可以执行各种操作了强>
例如:开始录音
<>以前Button btStart=,(按钮),findViewById (R.id.btStartRecord); ,,,,,,,btStart.setOnClickListener (new View.OnClickListener (), { ,,,,,,,,,,@Override ,,,,,,,,,,,public void onClick (View v), { ,,,,,,,,,,,,,,,try { ,,,,,,,,,,,,,,,,,,,mediaRecorder.prepare (); ,,,,,,,,,,,,,,,},catch (IOException e), { ,,,,,,,,,,,,,,,,,,,Log.e (LOG_TAG,,“先生出错!“); ,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,mediaRecorder.start (); ,,,,,,,,,,,} ,,,,,,,});例如:结束录音
<>以前Button btStop=,(按钮),findViewById (R.id.btStopRecord); ,,,,,,,btStop.setOnClickListener (new View.OnClickListener (), { ,,,,,,,,,,@Override ,,,,,,,,,,,public void onClick (View v), { ,,,,,,,,,,,,,,,mediaRecorder.stop (); ,,,,,,,,,,,,,,,mediaRecorder.release (); ,,,,,,,,,,,,,,,mediaRecorder =,空; ,,,,,,,,,,,} ,,,,,,,});<强>最后需要写一下onRequestPermissionsResult 强>
<>以前public void  onRequestPermissionsResult (int requestCode, @NonNull String[],权限,@NonNull int [], grantResults), { ,,,,,,,如果(requestCode==1) { ,,,,,,,,,,,如果(grantResults.length> 0,,,, grantResults [0]==PackageManager.PERMISSION_GRANTED) { ,,,,,,,,,,,,,,,initMR (); ,,,,,,,,,,,其他}{ ,,,,,,,,,,,,,,,Toast.makeText(这一点,“未获得麦克风访问权限“,,Toast.LENGTH_LONG),告诉(); null null null null