如何使用4.3中的意图调用Android相机应用来捕获视频。我让它在4.2及以下工作。甚至是Google's sample is broken。这是一个错误吗?或者谷歌改变了他们返回录制视频的方式。图像捕捉仍然有效。
我仍然得到一个RESULT_OK但是在MediaStore.ACTION_VIDEO_CAPTURE意图上意图数据为空。
答案 0 :(得分:9)
是的,有bug starting with Android 4.3 release。
正如documentation所说:
如果没有EXTRA_OUTPUT,视频将被写入 视频的标准位置,以及该位置的Uri 在Uri的数据字段中返回。
我所体验的是返回的数据字段值为Null
,而不是包含视频文件的Uri
。
目前,如果设备的API Version为18,则将MediaStore.EXTRA_OUTPUT
传递给Intent
指定视频文件的输出位置。这可以按预期工作。
由于您使用默认的图库位置来存储视频,我的猜测是您希望保持相同。因此,您需要按如下方式设置EXTRA_OUTPUT
。
将新记录插入 MediaStore.Video.Media.EXTERNAL_CONTENT_URI:
Uri videoUri = context.getContentResolver().insert(EXTERNAL_CONTENT_URI, value);
将value
ContentValues
作为新视频文件的显示名称,文件类型和文件路径。例如。 :
ContentValues value = new ContentValues();
value.put(MediaStore.Video.Media.TITLE, "VideoTitle");
value.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
value.put(MediaStore.Video.Media.DATA, videoFilePath);
将返回的值videoUri
作为EXTRA_OUPUT
传递给Intent
。