android - 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 中运行它时,它不起作用
解决方案
如果您的FileProvider
东西设置正确,您应该能够从您设置为MediaStore.EXTRA_OUTPUT
值的 Uri 获取视频。
作为旁注,0.5
这不是视频质量的有效值。从文档:
用于控制录制视频质量的 Intent-extra 的名称。这是一个整数属性。当前值 0 表示低质量,适用于彩信,值 1 表示高质量。将来可能会添加其他质量级别。
此外,根据我的经验,尊重您的质量要求取决于相机应用程序开发人员,但并非所有人都这样做。
推荐阅读
- java - 这个 Android LiveData/Threading 代码是否有可能给出某种并发问题或意外结果?
- javascript - React 组件正在重新安装任何父状态更改。不知道为什么
- javascript - Android webview - 如何从外部存储中获取文件
- vuejs3 - vue3:显示完整对象很好的奇怪情况,但访问其元素之一返回未定义
- javascript - 更改文本颜色,ini
- reactjs - 无法从反应到表达的仅一条路线获取数据
- java - 如何在 Android Studio 中扩展 2 列中的按钮?
- r - R:“if else if”与“或”三种情况
- python - 我想要在特定文件中找到的号码,但在另一个文件中找不到
- javascript - 创建一个按钮以在一定时间后显示隐藏的文本