首页 > 解决方案 > onActivityForResult 不返回 Intent 的任何数据

问题描述

我在视频意图触发正常时遇到了困难。我尝试录制不到 10 秒的视频和超过 10 秒的视频。当我在 Activity 上调试结果时不返回任何数据。

这就是我触发事件的方式...

private void record() {
    Intent intent=new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if(intent.resolveActivity(getActivity().getPackageManager())!=null){
         new_video_file=getFilePath();
        Uri uri = FileProvider.getUriForFile(getActivity(),
                BuildConfig.APPLICATION_ID + ".provider",new_video_file);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0.5);
        startActivityForResult(intent,VIDEO_REQUEST);

    }
}

请注意,我想将视频设置为中等质量,不确定是否需要放置 0,5 或 0.5。

您好,我刚刚检查了像素 2 XL api 27 中的调试,它工作正常。当我在运行 android 9 的摩托罗拉 g 6 中运行它时,它不起作用

标签: androidandroid-intentandroid-camera-intent

解决方案


如果您的FileProvider东西设置正确,您应该能够从您设置为MediaStore.EXTRA_OUTPUT值的 Uri 获取视频。

作为旁注,0.5这不是视频质量的有效值。从文档

用于控制录制视频质量的 Intent-extra 的名称。这是一个整数属性。当前值 0 表示低质量,适用于彩信,值 1 表示高质量。将来可能会添加其他质量级别。

此外,根据我的经验,尊重您的质量要求取决于相机应用程序开发人员,但并非所有人都这样做。


推荐阅读