我使用以下代码:
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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)