基于VideoCodec实现音视频解码鸿蒙示例代码

鸿蒙场景化示例代码技术工程师
发布于 2025-6-24 10:43
浏览
0收藏

本文原创发布在华为开发者社区,更多鸿蒙场景化示例请见华为开发者联盟官网“行业实践与常见问题”专题页。

介绍

本示例基于picker模块,使用PhotoViewPicker方法拉起图库选择视频文件,将视频文件传递到native侧使用Demuxer解封装器进行解封装,再使用OH_VideoDecoder进行解码(surface模式)送显播放。

基于VideoCodec实现音视频解码源码链接

效果预览

基于VideoCodec实现音视频解码鸿蒙示例代码-鸿蒙开发者社区

使用说明

下载代码后,点击选择视频可以选择相册里的视频,然后点击播放进行视频的播放。

实现思路

  1. 导入picker模块,拉起图库选择视频文件保存到自定义路径。
    let photoSelectOptions = new picker.PhotoSelectOptions();
    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.VIDEO_TYPE;
    photoSelectOptions.maxSelectNumber = 1;
    let photoPicker = new picker.PhotoViewPicker();
    photoPicker.select(photoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => {
      this.selectFilePath = PhotoSelectResult.photoUris[0];
    })
  1. 将文件传递到native侧进行交互。

  2. 使用Demuxer接口对文件进行解封装获取视频流数据。

  3. 使用OH_VideoDecoder接口将视频数据解码,结合Xcomponent送显播放。

    XComponent({
      id: 'xcomponent',
      type: XComponentType.SURFACE,
      libraryname: 'player'
    })

分类
收藏
回复
举报
回复
    相关推荐