如何在react-native-track-player播放随机音频时隐藏通知栏提示
React Native Track Player 隐藏播放通知栏解决方案
react-native-track-player 默认会开启媒体通知栏适配,配合后台播放能力使用,你可以通过以下配置关闭通知栏提示:
1. 初始化播放器时传入禁用通知配置
修改setupPlayer调用逻辑,传入配置项关闭通知相关能力:
await TrackPlayer.setupPlayer({ // 禁用自动更新媒体通知元数据 autoUpdateMetadata: false, // 通知栏控制能力设为空,不会渲染任何控制按钮 notificationCapabilities: [], compactCapabilities: [], // 安卓端配置:APP退到后台后自动停止播放器,避免触发前台服务通知 stopWithApp: true, })
2. 播放结束后及时销毁播放器实例
你的场景是播放短音频,播放完成后直接销毁播放器可以彻底清理残留的通知,修改后的完整代码如下:
export const startSound = async () => { const random = Math.floor(Math.random() * 4); await TrackPlayer.setupPlayer({ autoUpdateMetadata: false, notificationCapabilities: [], compactCapabilities: [], stopWithApp: true, }); await TrackPlayer.add({ id: String(random), // id转为字符串类型,避免部分版本类型校验异常 url: openingSound[random ? random : 1].sound, }); await TrackPlayer.play(); // 监听播放结束事件,销毁播放器 TrackPlayer.addEventListener('playback-queue-ended', async () => { await TrackPlayer.destroy(); // 移除事件监听避免内存泄漏 TrackPlayer.removeAllListeners('playback-queue-ended'); }); };
3. 版本适配注意事项
- 如果你使用的是v3及以上版本的react-native-track-player,不需要在注册播放服务的代码中添加任何自定义通知配置即可生效。
- 安卓端如果还有通知残留,可以在
AndroidManifest.xml中移除FOREGROUND_SERVICE相关的音频播放权限,彻底禁用前台通知能力。
内容的提问来源于stack exchange,提问作者muhammad ripqi
相关产品推荐
相关产品推荐

