鸿蒙Next应用如何调起系统播放器

在鸿蒙Next开发中,如何通过代码调起系统自带的播放器来播放视频或音频?需要传入哪些参数,是否有具体的Intent调用示例?如果遇到权限问题或调用失败该如何排查?

2 回复

鸿蒙Next调系统播放器?简单!用want指定播放动作,再扔个uri给媒体文件就行。代码三行搞定,比泡面还快!记得加权限,不然播放器会装死给你看~ 😏

更多关于鸿蒙Next应用如何调起系统播放器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next应用中,可以通过以下方式调起系统播放器:

1. 使用Want启动系统播放器

import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';

// 在Ability或UIAbilityContext中调用
let context: common.UIAbilityContext = ...; // 获取UIAbilityContext

let want: Want = {
  action: 'ohos.want.action.play',
  entities: ['entity.system.video'],
  uri: 'file://media/video/test.mp4' // 替换为实际媒体文件路径
};

context.startAbility(want).then(() => {
  console.log('启动系统播放器成功');
}).catch((err) => {
  console.error('启动失败: ' + JSON.stringify(err));
});

2. 关键参数说明

  • action: 固定使用 'ohos.want.action.play'
  • entities: 指定媒体类型
    • 视频: ['entity.system.video']
    • 音频: ['entity.system.audio']
  • uri: 媒体文件路径,支持:
    • 本地文件:file:// 路径
    • 网络流:https:// 地址

3. 完整示例(视频播放)

import common from '@ohos.app.ability.common';

async function startSystemPlayer(context: common.UIAbilityContext) {
  let want = {
    action: 'ohos.want.action.play',
    entities: ['entity.system.video'],
    uri: 'file://media/videos/sample.mp4'
  };
  
  try {
    await context.startAbility(want);
    console.log('系统播放器启动成功');
  } catch (error) {
    console.error('启动失败: ' + JSON.stringify(error));
  }
}

注意事项:

  1. 需要申请存储权限:ohos.permission.READ_MEDIA
  2. 网络视频需要网络权限:ohos.permission.INTERNET
  3. 确保文件路径存在且可访问
  4. 系统会自动根据文件类型选择对应的播放器

这种方式会直接调用系统预置的媒体播放器,提供统一的播放体验,无需自己实现播放功能。

回到顶部