[Android应用程序在调用mediaRecorder.stop时冻结

问题描述 投票:1回答:1

我正在按照http://developer.android.com/guide/topics/media/camera.html的指南,使用mediaRecorder和摄像机尝试录制视频。>

在mediaRecorder上,我设置了源,设置了文件,进行了准备并启动了相机...这一切都很好。

然后我调用mediaRecorder.stop,根据指南,它是您在停止过程中进行的第一个调用,应用程序刚刚挂起。没有错误,没有例外,nada。

包裹在try / catch中,没有抛出或捕获任何东西。

    Log.d(TAG, "try mediaRecorder stop");
    try { mMediaRecorder.stop(); }
    catch (Exception e) {...}

logcat似乎也没有任何用处

09-18 08:34:28.079  D/MyCameraApp﹕ **try mediaRecorder stop**
09-18 08:34:28.273  D/jdwp﹕ processIncoming
09-18 08:34:28.273  D/jdwp﹕ handlePacket : cmd=0x1, cmdSet=0xC7, len=0x14, id=0x40001414, flags=0x0, dataLen=0x9
09-18 08:34:28.273  D/jdwp﹕ sendBufferedRequest : len=0x34
09-18 08:34:28.774  D/jdwp﹕ processIncoming
...repeat same messages forever...
09-18 08:34:43.374  I/AndroidRuntime﹕ VM exiting with result code 1, cleanup skipped.

[当我查看fileManager时,确实创建了视频,并且视频的大小会根据我在杀死该应用程序之前独自留下的时间而增长。如果我尝试打开视频,出现“无法播放此视频”错误。

为什么应用程序挂断?我什至找不到一种方法来查看任何有用的错误消息。

-如果我在这里做错了,请启动摄像机代码-

    mCamera.unlock();
    mMediaRecorder.setCamera(mCamera);

    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    mMediaRecorder.setProfile(CamcorderProfile.get(1));
    mMediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString());

    try { mMediaRecorder.prepare(); }
    catch (IOException e) {...}
    catch (IllegalStateException e) {...}

    try { mMediaRecorder.start(); }
    catch (Exception e) {...}

更新1

我已经尝试过重置设备并为发现的错误添加发行版,但仍然不知道它可能在何处或为何失败。

仍然没有骰子,关于我甚至可以尝试获取更多信息的任何线索吗?关于它在哪里/为什么崩溃?

更新2

我在另一台设备上尝试过,并且在mediarecorder启动期间遇到了非法状态例外。也许这可以为这个问题提供一些启示?我不确定另一个问题,所以我打开了另一个问题:Android video recording - IllegalStateException on mediaRecorder.start

我正在按照http://developer.android.com/guide/topics/media/camera.html上的指南,使用mediaRecorder和摄像机尝试录制视频,在mediaRecorder上,我设置了来源,设置文件, ...

android android-camera
1个回答
0
投票

您解决了这个问题吗?我遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.