如何通过使用 4.3 中的意图调用 Android 相机应用程序来捕获视频。我让它在 4.2 及以下版本中工作。甚至谷歌的样本也坏了。这是一个错误吗?或者谷歌改变了他们返回录制视频的方式。图像捕获仍然有效。
我仍然得到 RESULT_OK 回复,但 MediaStore.ACTION_VIDEO_CAPTURE 意图上的意图数据为空。
如何通过使用 4.3 中的意图调用 Android 相机应用程序来捕获视频。我让它在 4.2 及以下版本中工作。甚至谷歌的样本也坏了。这是一个错误吗?或者谷歌改变了他们返回录制视频的方式。图像捕获仍然有效。
我仍然得到 RESULT_OK 回复,但 MediaStore.ACTION_VIDEO_CAPTURE 意图上的意图数据为空。
是的,从 Android 4.3 版本开始就有一个错误。
正如文档所说:
如果 EXTRA_OUTPUT 不存在,视频将被写入视频的标准位置,并且该位置的 Uri 将在 Uri 的数据字段中返回。
我所经历的是返回的数据字段值Null
不是包含视频文件的Uri
.
现在,如果设备的API 版本为 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
。