HarmonyOS鸿蒙Next中监听AudioSession焦点和状态变化事件和监听AudioRenderer焦点和状态变化事件相关总结

HarmonyOS鸿蒙Next中监听AudioSession焦点和状态变化事件和监听AudioRenderer焦点和状态变化事件相关总结 1、当应用没有使用AudioSession去申请焦点,就可以通过监听AudioRenderer或者AudioCapurer焦点状态变化事件,然后做响应的处理,具体案例可以参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/audio-playback-concurrency#%E9%80%9A%E8%BF%87%E8%AE%BE%E7%BD%AEaudiosession%E5%9C%BA%E6%99%AF%E5%8F%82%E6%95%B0%E7%94%B3%E8%AF%B7%E7%84%A6%E7%82%B9

2、当应用使用了AudioSession去申请焦点,应用可以通过on(‘audioSessionStateChanged’)来监听AudioSession的焦点和状态变化。为了维持应用和系统的状态一致性,确保良好的用户体验,应用应监听AudioSession焦点状态事件,并在焦点变化时做出必要响应。具体案例可以查考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/audio-session-management#%E7%9B%91%E5%90%ACaudiosession%E7%84%A6%E7%82%B9%E5%92%8C%E7%8A%B6%E6%80%81%E5%8F%98%E5%8C%96%E4%BA%8B%E4%BB%B6

ps:当应用使用了AudioSession去申请焦点,建议开发者是监听AudioSession的焦点和状态变化,来做响应处理,AudioSession的焦点和状态变化事件可以直接通知到应用,且事件更全面;


更多关于HarmonyOS鸿蒙Next中监听AudioSession焦点和状态变化事件和监听AudioRenderer焦点和状态变化事件相关总结的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

更多关于HarmonyOS鸿蒙Next中监听AudioSession焦点和状态变化事件和监听AudioRenderer焦点和状态变化事件相关总结的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,AudioSession焦点变化通过on('audioSessionDeactive')on('audioInterrupt')监听;状态变化通过on('stateChange')监听。AudioRenderer焦点变化使用on('audioInterrupt'),状态变化使用on('stateChange')。注意注册回调前需确保对象有效,并在适当时机注销监听。

您总结得很到位。关键区别在于架构路径:AudioSession 提供的是内聚的事件通知,而直接监听 AudioRenderer 意味着应用需要自行处理分散的焦点变化。当应用已使用 AudioSession 申请焦点,它便成为焦点管理的唯一入口,此时监听其自身的 audioSessionStateChanged 事件是正确且唯一应与系统状态保持同步的方式,因为该事件携带了最完整的与会话状态和焦点获取结果相关的信息。未使用 AudioSession 的简单场景下,直接监听底层播放器实例的状态变化是合理的降级处理。

回到顶部