lim*_*atz 5 camera android video-capture mediastore android-fileprovider
我目前在我的文件提供程序上使用内容 URI 来检索ACTION_IMAGE_CAPTURE意图返回的相机图像。这工作正常。
出于某种奇怪的原因,尝试从相机检索视频文件时,相同的调用不起作用。
destinationFile = File.createTempFile("video", ".mp4", this.getFilesDir());
Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", destinationFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
cameraIntent.setClipData(ClipData.newRawUri(null, uri));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, ID);
Run Code Online (Sandbox Code Playgroud)
当目的返回时onActivityResult(),destinationFile 为空。
简单地替换MediaStore.ACTION_VIDEO_CAPTURE由MediaStore.ACTION_IMAGE_CAPTURE给我预期的行为:所拍摄的图像保存在destinationFile。
这发生在 Nexus 设备和默认的 Google 相机应用程序上的库存 Android 6.0.1 上。
视频捕获真的不支持内容 URI 吗?我宁愿不在可公开访问的目录中使用文件 URI。
您有两个独立的问题:Google 相机应用程序的行为和整个 Android 生态系统的行为。
对于 Google 相机应用程序,我们将此报告为 Android N 的错误,因为您别无选择,只能使用 a content Uri(如果您targetSdkVersion是N或更高版本)。它应该在即将发布的版本中修复。
话虽如此,如果其他相机应用程序遇到值问题,我不会感到惊讶content Uri。这是我对Android N 有效禁止该file方案的担忧之一,因为我们将遇到既不可靠file也不content可靠的情况,而且我们没有好的方法来检测这些情况。
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |