HarmonyOS鸿蒙Next中用音视频播控中心实现通知栏控制音频的暂停、播放、上一首下一首,但需要ohos.permission.NOTIFICATION_CONTROLLER权限,邮件申请不过怎么解决
HarmonyOS鸿蒙Next中用音视频播控中心实现通知栏控制音频的暂停、播放、上一首下一首,但需要ohos.permission.NOTIFICATION_CONTROLLER权限,邮件申请不过怎么解决 【问题描述】:目前我是用音视频播控中心实现的通知栏控制音频的暂停、播放、上一首下一首的,但播控中心需要ohos.permission.NOTIFICATION_CONTROLLER权限,这个是系统权限,得单独申请,邮件申请不过 看是怎么解决这个问题
【问题现象】:权限申请不通过 需要提供方案
【版本信息】:HarmonyOS NEXT
【复现代码】:不涉及
音视频播控服务,可以通过播控中心控制音频可以使用
详情参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/avsession-overview
更多关于HarmonyOS鸿蒙Next中用音视频播控中心实现通知栏控制音频的暂停、播放、上一首下一首,但需要ohos.permission.NOTIFICATION_CONTROLLER权限,邮件申请不过怎么解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
使用 AVSession 框架替代 NotificationController。创建 AVSession 实例,设置元数据和播放状态回调,系统自动在通知栏生成媒体控制,无需申请 ohos.permission.NOTIFICATION_CONTROLLER 权限。详情参考官方 @ohos.multimedia.avsession 接口文档。
在HarmonyOS NEXT中,通知栏音频控件依靠 AVSession(音视频会话) 实现,无需申请 ohos.permission.NOTIFICATION_CONTROLLER 系统权限。你邮件申请被拒是因为该权限仅限系统应用管理他人通知,普通应用无法获取。
正确方案是使用 AVSession 框架:
- 创建并激活媒体会话
AVSession,设置AVMetadata(标题、艺术家、曲目等)及播放状态。 - 实现
AVSessionCallback响应播控中心的操作(播放、暂停、上一首、下一首等)。 - 通过
AVSessionController同步播放进度和状态。 系统会根据会话自动生成通知栏控件,无需额外权限。
示例核心代码:
import avSession from '@ohos.multimedia.avsession';
let session = await avSession.createAVSession(context, 'MusicSession', 'audio');
await session.activate();
session.setAVMetadata({
assetId: '1',
title: '歌曲名',
artist: '歌手',
duration: 200000
});
session.setAVPlaybackState({
state: avSession.PlaybackState.PLAY_STATE_PLAY,
speed: 1.0
});
session.on('play', () => { /* 播放逻辑 */ });
session.on('pause', () => { /* 暂停逻辑 */ });
session.on('skipNext', () => { /* 下一首 */ });
session.on('skipPrevious', () => { /* 上一首 */ });
这样即可在通知栏控制音频,完全摆脱系统权限申请问题。

