我正在使用mediaRecorder和相机尝试录制视频,按照http://developer.android.com/guide/topics/media/camera.html指南
在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