我正在尝试录制音频,但是start()
的方法MediaRecorder
类抛出一个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" />
recorder.setOutputFile("/sdcard/");
正在设置目录,而不是文件。
将其替换为:
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/youraudiofile.3gp";
使用“/sdcard”硬编码路径是脆弱的,所以使用上面的。
另外,要使其工作,您必须添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
到您的 AndroidManifest.xml
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)