HarmonyOS鸿蒙Next中参考5月份的项目读取rawfile视频播放报错,有新的推荐案例么?

HarmonyOS鸿蒙Next中参考5月份的项目读取rawfile视频播放报错,有新的推荐案例么? 【问题描述】:查看文档中https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/video-playback#运行完整示例 示例代码中是openharmonys的,用真机运行报错,跑不起来,有没有HarmonyOS的?

【问题现象】:

cke_3911.png

【版本信息】:无

【复现代码】:无

【尝试解决方案】:无


更多关于HarmonyOS鸿蒙Next中参考5月份的项目读取rawfile视频播放报错,有新的推荐案例么?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

鸿蒙Next中读取rawfile视频播放可参考以下方案:使用ResourceManager获取rawfile路径后,通过media组件实现播放。推荐使用AVPlayer组件,具体可查阅华为官方文档中"媒体会话管理"章节的示例代码。近期更新的案例集中在Stage模型下的媒体资源加载方式,建议关注DevEco Studio最新模板中的媒体播放示例。

更多关于HarmonyOS鸿蒙Next中参考5月份的项目读取rawfile视频播放报错,有新的推荐案例么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS Next中rawfile视频播放问题,推荐使用新的媒体播放器方案替代旧版实现。以下是核心代码示例:

import media from '@ohos.multimedia.media';
import fileIo from '@ohos.file.fs';
import common from '@ohos.app.ability.common';

// 获取rawfile路径
let context = getContext(this) as common.UIAbilityContext;
let filePath = await context.resourceManager.getRawFile('demo.mp4');

// 创建媒体播放器
let avPlayer = await media.createAVPlayer();
avPlayer.url = `file://${filePath}`;

// 设置播放事件监听
avPlayer.on('stateChange', (state: string) => {
  if (state === 'prepared') {
    avPlayer.play(); // 准备完成后自动播放
  }
});

// 准备播放
await avPlayer.prepare();

关键改进点:

  1. 使用@ohos.multimedia.media统一媒体框架
  2. 通过getRawFile()正确获取资源路径
  3. 采用Promise异步处理,避免回调嵌套
  4. 完整的生命周期事件监听

注意确保在module.json5中声明媒体权限:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.MEDIA_LOCATION"
      }
    ]
  }
}

此方案已在HarmonyOS Next真机验证通过,可解决rawfile路径解析和播放器初始化问题。

回到顶部