我一直试图让一个自定义的相机屏幕工作,但由于某些原因,下面的代码似乎不起作用。我的结果是
RuntimeException
,由一个错误引起,说。
setAudioSource called in an invalid state(4)
。
The following is the code in question:
Preview.getRecorderInstance().setVideoSource(MediaRecorder.VideoSource.CAMERA);
Preview.getRecorderInstance().setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
Preview.getRecorderInstance().setAudioSource(MediaRecorder.AudioSource.MIC);
Preview.getRecorderInstance().setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Preview.getRecorderInstance().setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
Preview.getRecorderInstance().setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/test" + System.currentTimeMillis() + ".mp4"
Preview.getRecorderInstance().prepare();
Preview.getRecorderInstance().start();
Preview.getRecorderInstance()
获得与Preview
类(它是SurfaceView
的一个子类,旨在显示相机预览)绑定的单子媒体记录器。
My permissions:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我希望得到任何帮助,因为我在这方面没有任何进展,我在 stackoverflow 上看了类似的问题。看完回复后,我没能解决这个问题。