Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 为什么MediaRecorder的start()方法抛出IllegalStateException?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试录制音频,但MediaRecorder类的start()方法会抛出IllegalStateException.
我使用以下代码: @H_547_3@mediaRecorder recorder = new MediaRecorder(); recorder.setAudiosource(MediaRecorder.Audiosource.MIC); recorder.setOutputFormat(MediaRecorder.outputFormat.THREE_GPp); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile("/sdcard/"); try { recorder.prepare(); } catch (IllegalStateException E) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException E) { // TODO Auto-generated catch block e.printStackTrace(); } Log.i("Try","Exception"); recorder.start();

并获得许可

<uses-permission android:name="android.permission.RECORD_AUdio" />

解决方法

Vijay,recorder.setOutputFile(“/ sdcard /”);正在设置目录,而不是文件.
替换为: @H_547_3@mFilename = Environment.getExternalStorageDirectory().getAbsolutePath(); mFilename += "/youraudiofile.3gp";

使用“/ sdcard”硬编码脆弱的路径,所以使用上面的方法

此外,为此,您必须添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

到您的AndroidManifext.xml

大佬总结

以上是大佬教程为你收集整理的android – 为什么MediaRecorder的start()方法抛出IllegalStateException?全部内容,希望文章能够帮你解决android – 为什么MediaRecorder的start()方法抛出IllegalStateException?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。