基于AVPlayer音频后台播放
基于AVPlayer音频后台播放怎么做?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
AVplayer开发音频播放功能
988浏览 • 1回复 待解决
AVPlayer实现音频播放(c++侧)
1001浏览 • 1回复 待解决
HarmonyOS 音频后台播放问题
292浏览 • 1回复 待解决
HarmonyOS实现后台播放音频
280浏览 • 1回复 待解决
HarmonyOS AVPlayer播放视频,退出页面后台播放时,视频会停止
282浏览 • 1回复 待解决
使用AVPlayer播放音频文件的几种方式实现
1342浏览 • 1回复 待解决
HarmonyOS 开启后台播放音频,切换到后台播放一段时间后,音频任务自己退出的问题
307浏览 • 1回复 待解决
音频后台播放应用突然正常退出问题定位
724浏览 • 1回复 待解决
HarmonyOS AVPlayer 播放问题
353浏览 • 1回复 待解决
AVPlayer实现视频播放
678浏览 • 1回复 待解决
avplayer播放视频demo
1171浏览 • 1回复 待解决
HarmonyOS AvPlayer视频播放速度问题
267浏览 • 1回复 待解决
HarmonyOS音频播放问题
249浏览 • 1回复 待解决
使用AVPlayer实现视频播放器
983浏览 • 1回复 待解决
HarmonyOS 基于AvPlayer实现视频组件全屏切换咨询
241浏览 • 1回复 待解决
HarmonyOS后台播放失效问题
295浏览 • 1回复 待解决
AudioCapturer录音+AudioRenderer播放音频
1081浏览 • 1回复 待解决
SoundPool实现音频播放功能
1094浏览 • 1回复 待解决
HarmonyOS 音频录制与播放
400浏览 • 1回复 待解决
系统播放器AVplayer相关规格问题
325浏览 • 1回复 待解决
ArkTS音频播放,音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放
1088浏览 • 1回复 待解决
怎么基于Java实现视频播放?
2808浏览 • 1回复 待解决
鸿蒙 如何使用 player 播放网络音频?
7310浏览 • 1回复 已解决
HarmonyOS 如何判断音频是否在播放
229浏览 • 1回复 待解决
使用AudioRenderer开发音频播放功能
905浏览 • 1回复 待解决
音乐播放是媒体最重要的组成之一,以下是AVPlayer将Audio媒体资源(比如mp3等)转码为可听见的音频模拟信号,并通过输出设备进行播放。
场景一:使用avPlayer进行后台播放音乐
想要实现应用后台播放,那么接入AVSession是必须的,否则业务的正常功能会同时受到限制,也必须有BackgroundTasks Kit(后台任务管理)的能力,申请对应的长时任务,避免进入挂起(Suspend)状态。
应用不申请后台任务会被冻结,不注册AVSession会被暂停。
步骤一:创建avPlayer实现音频播放
创建avPlayer并加载音频资源
注册avPlayer回调函数
步骤二:创建AVSession,使音频接入播控中心
AVSession在构造方法中支持不同的类型参数,由 AVSessionType定义,不同的类型代表了不同场景的控制能力,对于播控中心来说,会展示不同的控制模版。
创建AVSession
注:播控中心的显示必须要配上session.on控制命令的监听
步骤三:创建长时任务
在module.json5申请ohos.permission.KEEP_BACKGROUND_RUNNING权限:
声明后台模式类型
在对应的UIAbility下配置backgroundModes
配置长时任务信息
wantAgentInfo配置信息链接:WantAgentInfo。
申请长时任务
场景二:在播放音乐过程中,有其它音频流(如:导航音、电话)进入,进行相关处理
在多个音频流同时播放场景下,如果系统不加管控,会造成多个音频流混音播放,容易让用户感到嘈杂,造成不好的用户体验。为了解决这个问题,系统预设了音频打断(InterruptEvent)策略,对多音频播放的并发进行管控。为满足应用对多音频并发策略的不同需求,音频打断策略预设了两种焦点模式,针对同一应用创建的多个音频流,应用可通过设置焦点模式,选择由应用自主管控或由系统统一管控。
步骤一:完成上述场景一。
步骤二:设置焦点模式。
注:只允许在prepared/playing/paused/completed状态下设置。
步骤三:设置音频类型。
步骤四:创建监听音频焦点打断。
调用avPlayer的on('audioInterrupt')函数进行监听,当收到音频打断事件(InterruptEvent)时,应用需根据其内容,做出相应的调整。
场景:
新播放的音频流
voip通话
voip消息
音乐
视频
游戏
听书/听新闻
导航
正在播放的音频流
voip通话
拒绝新的voip通话
降低voip消息音量
降低音乐音量
降低视频音量
降低游戏音量
降低听书/听新闻音量
降低导航音量
voip消息
停止正在播放的voip消息
停止正在播放的voip消息
停止voip消息
停止voip消息
同时播放
停止voip消息
降低导航音量
音乐
暂停音乐
音乐
暂停音乐
停止音乐
停止正在播放的音乐
停止音乐
同时播放
视频
暂停视频
视频
暂停视频
停止视频
停止视频
停止正在播放的视频
停止视频
游戏
暂停游戏
游戏
暂停游戏
同时播放
同时播放
暂停游戏
停止正在播放的游戏
听书/听新闻
暂停听书/听新闻
听书/听新闻
暂停听书/听新闻
停止听书/听新闻
停止听书/听新闻
停止听书/听新闻
停止听书/听新闻
导航
降低导航音量
导航
降低导航音量
降低导航音量
降低音乐音量
降低视频音量
降低游戏音量