鸿蒙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));
}
}
注意事项:
- 需要申请存储权限:
ohos.permission.READ_MEDIA - 网络视频需要网络权限:
ohos.permission.INTERNET - 确保文件路径存在且可访问
- 系统会自动根据文件类型选择对应的播放器
这种方式会直接调用系统预置的媒体播放器,提供统一的播放体验,无需自己实现播放功能。

