【问题标题】:onActivityForResult not returning any data for IntentonActivityForResult 没有为 Intent 返回任何数据
【发布时间】:2020-03-03 15:52:13
【问题描述】:

我无法正常触发视频意图。我尝试录制不到 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 中运行它时,它不起作用

【问题讨论】:

  • 您向我们展示的是您发送给您正在启动的活动的内容。不是什么会被退回。您在此处放置的内容将在您调用的活动包中找到。任何退货信息都将来自您在后续活动中分配给捆绑包的内容。
  • 感谢Jay的回答,但我需要获取此活动中的信息或视频才能将其上传到back4app服务器。我真的需要在此活动中获取此视频。考虑到使用 Pixel 2 XL 我得到了数据,但我的手机在 onActivityForResult 中没有数据。

标签: android android-intent android-camera-intent


【解决方案1】:

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

附带说明,0.5 不是视频质量的有效值。来自docs

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

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

【讨论】:

  • 你好,迈克,我将质量更改为 1,但是一旦我录制视频,onActivityResult 仍然返回 null。你好,我刚刚检查了像素 2 XL api 27 中的调试,它工作正常。当我运行它时使用 android 9 运行的摩托罗拉 g 6 无法正常工作。
  • 您不应该寻找Intent.data 来获取捕获的视频文件。您应该查看在传出请求 Intent 中设置的 Uri。
猜你喜欢
  • 2021-10-09
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多