2015-05-20 51 views
-1

我正尝试使用媒体录像机录制视频。 当我尝试录制视频时,它会与以下logcat一起坠毁。无法使用媒体记录器录制视频android

05-20 14:28:43.432:E/MediaRecorder(4281):启动失败:-38 05-20 14:28:43.432:d/AndroidRuntime(4281):关闭VM 05-20 14:28:43.432:W/dalvikvm(4281):threadid = 1:线程退出 未捕获的异常(group = 0x415c5d88)05-20 14:28:43.462: E/AndroidRuntime(4281):致命异常:main 05-20 14:28:43.462: E/AndroidRuntime(4281):进程:com.abc.def,PID: 4281 05-20 14:28:43.462:E/AndroidRuntime(4281): java.lang。 IllegalStateException 05-20 14:28:43.462: E/AndroidRuntime(4281):at android.media.MediaRecorder.start(Native 方法)05-20 14:28:43.462:E/AndroidRuntime(4281):在 com.abc.def.PrivateChatDialog.startVideoRecording(PrivateChatDialog.java:1413) 05-20 14:28:43.462:E/AndroidRuntime (4281):at com.abc.def.PrivateChatDialog $ 3.onClick(PrivateChatDialog.java:198) 05-20 14:28:43.462:E/AndroidRuntime(4281):at android.view.View.performClick( View.java:4569)05-20 14:28:43.462: E/AndroidRuntime(4281):at android.view.View $ PerformClick.run(View.java:18570)05-20 14:28:43.462 :E/AndroidRuntime(4281):at android.os.Handler.handleCallback(Handler.java:743)05-20 14:28:43.462:E/AndroidRuntime(4281):at android.os.Handler.dispatchMessage (Handler.java:99)05- 20 14:28:43.462:E/AndroidRuntime(4281):at android.os.Looper.loop(Looper.java:136)05-20 14:28:43.462: E/AndroidRuntime(4281):at android.app.ActivityThread.main(ActivityThread.java:5212)05-20 14:28:43.462:E/AndroidRuntime(4281):at java.lang.reflect.Method.invokeNative(Native Method)05-20 14/28:43.462:E/AndroidRuntime(4281):在 java.lang.reflect.Method.invoke(Method.java:515)05-20 14:28:43.462: E/AndroidRuntime(4281):在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786) 05-20 14:28:43.462:E/AndroidRuntime(4281):at com.android.internal.os.ZygoteInit.main (ZygoteInit.jav一:602)05-20 14 :28:43.462:E/AndroidRuntime(4281):在 dalvik.system.NativeStart.main(本机方法)

这是我使用捕获视频代码。

protected void startVideoRecording() throws IOException { 
     if(mrec==null) 
     mrec = new MediaRecorder(); // Works well 
     mCamera.unlock(); 
     mrec.setCamera(mCamera); 
     mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
     mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW)); 
     mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
     mrec.setOutputFile(getVideoFileName()); 
     mrec.setVideoSize(320, 280); 
     mrec.prepare(); 
     mrec.start(); 
     videoRecording = true; 
    } 

我已经尝试了很多,并搜索了很多,但找不到解决方案。 我发现了什么was this SO question

但我没有任何后台服务录制音频。 请帮我找一个解决方案。 谢谢。

回答

0

我修改的功能如下:

public void startVideoRecording() throws IOException { 
     mrec = new MediaRecorder(); // Works well 
     mCamera.unlock(); 
     mrec.setCamera(mCamera); 
     mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
     mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
     mrec.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
     mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
     mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
     mrec.setOrientationHint(90); 
     String path = getVideoFileName(); 
     mrec.setOutputFile(path); 
     mrec.prepare(); 
     mrec.start(); 
     videoRecording = true; 
    } 

在此之后也应用程序崩溃,然后电话重启的伎俩,现在一切正常。

相关问题