android – 为什么MediaRecorder的start()方法抛出IllegalStateException?

android – 为什么MediaRecorder的start()方法抛出IllegalStateException?,第1张

概述我正在尝试录制音频,但MediaRecorder类的start()方法会抛出IllegalStateException. 我使用以下代码: MediaRecorder recorder = new MediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);recorder.setOutputFormat(Med 我正在尝试录制音频,但MediaRecorder类的start()方法会抛出IllegalStateException.
我使用以下代码:
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 /”);正在设置目录,而不是文件.
替换为:
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?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存