视频意图后相机应用程序崩溃,但图片意图工作正常?

时间:2013-12-04 17:32:00

标签: android video android-intent camera

我正在使用相机意图使用默认相机应用程序捕获静态图像和视频。拍照的方法和拍摄视频的方法非常相似。图片一个很好用,它将照片保存到我提供意图路径的临时文件中。但视频不起作用。

视频意图正常打开相机应用程序,然后我录制了m视频,一切似乎都很好,但是当我完成录制或达到其中一个限制时,相机应用程序就会崩溃。

这是我调用相机应用程序的活动代码:

private void takeVideo()
{
       Intent videoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);

       File tempFolder = new File(Environment.getExternalStorageDirectory(), "MediaTemp");
       tempFolder.mkdirs(); 
       File video = new File(tempFolder, "vid.tmp");
       Uri uriSavedVideo = Uri.fromFile(video);
       videoIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedVideo);
       videoIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60);
       videoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
       videoIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, (long)(16*1024*1024));

       this.startActivityForResult(videoIntent, 2);
}

private void takePicture()
{
       Intent pictureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

       File tempFolder = new File(Environment.getExternalStorageDirectory(), "MediaTemp");
       tempFolder.mkdirs(); 
       File image = new File(tempFolder, "pic.tmp");
       Uri uriSavedImage = Uri.fromFile(image);
       pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);

       this.startActivityForResult(pictureIntent, 1);
}

我不认为问题出在OnActivityResult方法中,因为崩溃的应用程序是相机应用程序而不是我自己的应用程序,因此它遇到的问题必须在我的应用程序在OnActivityResult中获得控制权之前发生。但我无法理解造成这次崩溃的原因。任何人都可以对此提供一些见解吗?

1 个答案:

答案 0 :(得分:0)

我没有使用Android相机,但你可能想看看CommonsWare如何在他的库中解决这些问题:https://github.com/commonsguy/cwac-camera

从github页面:

  

CWAC-Camera旨在标准化“大量代码”并将其隐藏在可扩展API之后。在这里,“可扩展”意味着“简单的事情很简单,但复杂的事情可能有点复杂”。

https://stackoverflow.com/users/115145/commonsware

的信用