HarmonyOS 鸿蒙Next 如何获取视频的第一帧作为视频的封面?

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何获取视频的第一帧作为视频的封面?

如题, 想要获取视频第一帧,作为视频的封面。这应该如何去获取?最好是能转换成byte[], 需要跨设备传递这个封面,如果超过1M,IDL或者分布式任务调度就会直接返回null.

13 回复

avMetadataHelper.setSource中的路径应该怎么写 我一直报错 路径无法读取

更多关于HarmonyOS 鸿蒙Next 如何获取视频的第一帧作为视频的封面?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决了没, 我也是 一直报错

不建议获取第一帧,第一帧有时是黑屏

嗯  主要是想要一个获取方式, 弥补一下这方面资料缺失问题  

你好  获取视频第一帧图片可以实现了吗?

可以用的,这个方式可以

开发者您好,下面是我们技术人员给出的答复,请参考。


步骤1 创建媒体数据管理AVMetadataHelper对象,可以通过setSource设置要读取的媒体文件,如果不设置或设置不正确,则无法进行后续操作。

AVMetadataHelper avMetadataHelper = new AVMetadataHelper ();

avMetadataHelper.setSource(""/data/data/com.huawei.multimedia/video.mov"");


步骤2 指定获取帧数据的选项,以及获取帧的时间,获取媒体源的帧数据。

PixelMap pixelMap = avMetadataHelper.fetchVideoPixelMapByTime(1000L, 0x00);


步骤3 获取到PixelMap对象后,调用release()函数释放读取的媒体资源。

avMetadataHelper.release();

项目media里的文件 怎么设置路径?

只能获取本地视频的第一帧吗?网络视频可以吗?

开发者您好,这个问题已经反馈给研发,请您耐心等待一下。

解码器解码?????

欢迎有经验的小伙伴进来分享~

在HarmonyOS鸿蒙Next系统中,要获取视频的第一帧作为封面,可以使用媒体框架(Media Framework)中的相关API来实现。

首先,通过MediaExtractor类加载视频文件,然后使用MediaCodec解码第一帧数据。以下是一个简要流程:

  1. 创建MediaExtractor:通过MediaExtractor类的构造函数加载视频文件。

  2. 设置解码器:根据视频格式(如H.264),找到相应的解码器并设置给MediaCodec

  3. 读取第一帧数据:使用MediaExtractorreadSampleData方法读取第一帧的编码数据,然后将其传递给MediaCodec进行解码。

  4. 获取解码后的帧:解码后,通过MediaCodecgetOutputBuffersgetOutputImage方法获取解码后的图像数据。

  5. 处理图像数据:将解码后的图像数据转换为Bitmap或其他图像格式,以便后续使用或显示。

  6. 释放资源:在完成操作后,记得释放MediaExtractorMediaCodec资源。

示例代码由于篇幅限制无法详细展示,但你可以参考鸿蒙官方文档或开发者论坛中的具体实现。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部