HarmonyOS 鸿蒙Next音频播放问题
HarmonyOS 鸿蒙Next音频播放问题
使用OpenSL ES播放音频的问题:
1. 调用Playback接口的SetPlayState(playItf, SL_PLAYSTATE_PAUSED)会阻塞200多毫秒导致APP卡顿,是否可以提供异步接口函数?
2. 音频PCM数据播放完毕需要如何停止?按OpenSL ES规范,如果没有调用Enqueue,BufferQueue接口RegisterCallback注册的回调函数应不会被执行(目前即使没有调用Enqueue,BufferQueueCallback也一直会被回调)
1. 调用Playback接口的SetPlayState(playItf, SL_PLAYSTATE_PAUSED)会阻塞200多毫秒导致APP卡顿,是否可以提供异步接口函数?
2. 音频PCM数据播放完毕需要如何停止?按OpenSL ES规范,如果没有调用Enqueue,BufferQueue接口RegisterCallback注册的回调函数应不会被执行(目前即使没有调用Enqueue,BufferQueueCallback也一直会被回调)
2 回复
楼主您好,当前 OpenSL ES 的策略为不在演进,所有后续继续使用 OpenSL ES 的话应该只能手动停止播放,而没有办法新增需求;建议后续切换为OHAudio,替代 OpenSL ES 实现音频播放,后续也会一直演进OHAudio。
针对您提出的HarmonyOS 鸿蒙Next音频播放问题,以下是一些专业解答:
- AVPlayer播放延迟:在HarmonyOS 鸿蒙Next中使用AVPlayer播放音频时,可能存在明显延迟。这可能是由于AVPlayer的初始化及准备时间导致。请确保AVPlayer在调用play方法前已正确准备,并检查是否有其他资源加载或处理延迟。
- OH_Audio接口播放无声或声音异常:使用OH_Audio接口播放音频时,如遇到无声或声音异常问题,请查阅鸿蒙官方文档,确保音频播放器工作在低延迟模式下,并正确设置帧大小。帧大小设置需至少等于音频硬件一次处理的数据大小,且不超过内部缓冲容量的一半。
- 权限管理:确保您的应用已获取播放音频所需的版权及系统权限,包括音乐播放相关权限及后台任务管理权限。
鸿蒙Next教程已发布,可以先学学:https://www.itying.com/category-93-b0.html