HarmonyOS鸿蒙Next中投屏之后倍速不生效

HarmonyOS鸿蒙Next中投屏之后倍速不生效 在投播视频已经获取到控制器之后,选择倍速,投播视频不生效

6 回复

开发者您好,

AVCastController:投播控制器,用于投播场景下,完成播放控制、远端播放状态监听等操作。可设置AVCastControlCommand中的AVCastControlCommandType为播放play、暂停pasue等控制投播。 远端设备支持的协议类型ProtocolType

  • TYPE_LOCAL:本地设备,包括设备本身的内置扬声器或音频插孔、A2DP设备。
  • TYPE_CAST_PLUS_STREAM:Cast+的Stream模式,表示媒体正在其他设备上展示。
  • TYPE_DLNA:DLNA协议,表示媒体正在其他设备上展示。

DLAN协议不支持倍速,如需要设置倍数,需要使用Stream模式,即远端设备支持的协议类型ProtocolType设置为TYPE_CAST_PLUS_STREAM。

如果还是不能解决您的问题,麻烦您这边提供下能复现问题的完整demo吧。

更多关于HarmonyOS鸿蒙Next中投屏之后倍速不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我按照官方文档来做的,设置了TYPE_CAST_PLUS_STREAM,然后下载了 华为的demo,直接闪退,我修复好了闪退,但是倍速依旧不生效啊,

开发者您好,我看您说是下载了相关demo,直接闪退,方便提供下demo的链接地址嘛?如果设置倍速之后还是不生效,方便提供下完整能复现问题的demo嘛?

这个应该是播放器的bug

在HarmonyOS鸿蒙Next中,投屏后倍速不生效通常与系统投屏协议限制有关。鸿蒙的投屏功能基于无线显示标准(如Miracast),这些标准通常不支持传输端控制播放倍速。倍速功能依赖于本地播放器的处理,但在投屏时,视频流以原始帧率传输到接收设备,因此倍速设置无法在接收端生效。目前系统层未开放投屏时的倍速处理接口。

在HarmonyOS Next中,投屏(投播)后倍速控制不生效,通常与媒体会话(AVSession)和远端播放状态同步机制有关。以下是关键排查点:

  1. 检查AVSession控制器绑定状态:确保通过avSessionManager.createController(sessionId)获取的控制器是针对远端投屏会话的,而非本地会话。投屏后,媒体控制应作用于远端设备(如智慧屏)的AVSession。

  2. 验证倍速命令的发送目标:调用avController.setPlaybackSpeed(speed)时,需确认控制器已正确关联到投屏设备的会话。可通过avController.getSessionId()比对会话ID。

  3. 远端AVSession的能力支持:投屏接收端(如智慧屏)的AVSession需在AVSessionDescriptor中声明支持倍速操作(即isPlaybackSpeedSupported为true)。若远端不支持,命令将无效。

  4. 同步时机问题:投屏建立后,远端设备的AVSession可能未完全初始化或状态未同步。建议在收到AVSession创建设备连接的回调后再发送控制命令。

  5. 使用AVRouter的正确流程:若通过AVRouter投屏,需通过avRouter.getSessionController()获取控制器,而非从本地会话管理器中直接创建。

建议按以下步骤调试:

  • 监听AVSession创建事件,确认投屏会话ID。
  • 检查控制器的isPlaybackSpeedSupported()返回值。
  • 捕获setPlaybackSpeed的异常或返回码。

若以上均无误,需排查投屏接收端系统的媒体服务兼容性。

回到顶部