当前位置: 首页 > 知识库问答 >
问题:

在Android 4.3中使用Camera app intent进行视频捕获

王宏深
2023-03-14

你如何通过调用Android camera应用程序捕捉视频,使用4.3中的意图。我让它在4.2及以下版本工作。就连谷歌的样本也坏了。这是虫子吗?或者谷歌改变了他们返回录制视频的方式。图像捕捉仍然有效。

我仍然返回一个RESULT_OK,但是intent数据在mediastore.action_video_capture intents上为空。

共有1个答案

魏健柏
2023-03-14

是的,从Android4.3发布开始就有一个bug。

正如文档所说:

如果EXTRA_OUTPUT不存在,视频将被写入视频的标准位置,该位置的Uri将返回到Uri的数据字段中。

我所经历的是,返回的数据字段值为null,而不是包含视频文件的URI

目前,是将mediastore.extra_output传递给intent,如果设备的API版本是18,则指定视频文件的输出位置。这按预期工作。

由于您使用默认的库位置来存储视频,我猜您会希望保持它不变。因此,您需要设置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

  •  类似资料:
    • 我尝试用全高清分辨率的罗技C920摄像头捕捉视频。它提供30 fps与此分辨率。 它以30 fps的速度与windows摄像头应用程序配合使用,但无论我如何尝试,我都无法通过opencv videoCapture获得这种fps速度。 注意:我使用windows 10和vs15。我尝试了不同的usb端口,opencv版本和编解码器。结果是相同的,〜5 fps。 我测量fps忽略前10帧。下面是我的计

    • 硬件: 1.树莓派2 2.树莓派相机 软件: 1。OpenCV 2.4。11 2。用C语言编程 我有以下简单的代码,可以从摄像机捕获视频并在窗口中显示 帧大小始终为640 x 480,尝试更改帧的宽度和高度(如注释行所示)没有帮助,并且保持为640 x 480。 我正在寻找一种方法,将帧的宽度和高度从我的代码(而不是外壳)更改为1920 x 1080 如果可以通过OpenCV或V4l2驱动程序完成

    • 问题内容: 我想每5秒从视频中捕获一帧。 这是我的JavaScript代码: 我的问题是,第一次生成的两个图像相同,而持续时间为5秒的图像却没有生成。我发现缩略图是在标记中显示特定时间的视频帧之前生成的。 例如,当时,生成帧0s的图像。然后视频帧跳到时间5s。因此,当时,将生成帧5s的图像。 问题答案: 原因 问题在于(通过设置)查找视频是异步的。 您需要收听事件,否则可能会冒取当前实际帧的风险,

    • 大家好,因为我想玩jitsi videobridge源代码,我从git hub下载了souce,我想使用eclipse IDE运行它,这样我就可以知道如何在jvb中进行调用,但我无法在eclipse中构建maven项目,因为它有很多错误。因此,如果有人正在调试jvb,请您分享设置eclipse以从源代码调试项目jitsi videobridge的步骤。 快速安装正在工作,我已经测试了很多,但我很想

    • 我正在尝试使用MediaCodec和MediaMuxer对来自相机的视频和来自麦克风的音频进行编码。我在录制时使用OpenGL在图像上覆盖文本。 我以这些课程为例: http://bigflake.com/mediacodec/CameraToMpegTest.java.txt https://github.com/OnlyInAmerica/HWEncoderExperiments/blob/m

    • 我使用aws kinesis video stream webRTC在reactjs中进行视频聊天。一切都很好。但是我想把视频存储在s3 Bucket中。我应该如何实现这个视频存储?