更新时间:2024-11-15 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
降级处理
降级场景
降级说明
使用LLL SDK进行直播拉流时,可能会遇到播放失败等问题,可以考虑使用其他协议播放。
触发条件
- 浏览器环境不支持webrtc特性,可以通过checkSystemRequirements接口来判断。
- 服务端请求、建链均失败。
- 媒体起播播放超时,且解码帧数为0时,会进入降级流程。
- 未开启断流重试时,播放过程中出现断流,也会进入降级流程。
降级方式
- 自动降级
    低时延直播SDK默认是开启自动降级的,当触发自动降级时,SDK会自动尝试从低时延直播降级到FLV或者HLS协议,例如,低时延直播地址: webrtc://domain/appname/streamname?arg1=v1 会根据设备的支持情况,自动尝试降级到FLV或者HLS协议地址,url中携带的参数会拼接到降级后的url中,如: https://domain/appname/streamname.flv?vhost=domain&arg1=v1 或 https://domain/appname/streamname.m3u8?vhost=domain&arg1=v1 如果需要关闭自动降级,可以通过接口setParameter设置AUTO_DOWNGRADE值来修改,示例如下: HWLLSPlayer.setParameter('AUTO_DOWNGRADE', false) // true表示开启自动降级播放,false表示关闭自动降级播放,默认开启
- 指定降级
    通过HWLLSClient中的startPlay接口,指定options里面参数downgradeUrl的flv或hls地址,可以实现在异常时降级播放。如果hlsUrl和flvUrl播放地址设置一个,会降级至指定地址;如果两个播放地址都设置,则会先走HLS降级,如果HLS不支持或者HLS拉流失败,则会走FLV降级。注意iOS设备不支持FLV播放。 const client = HWLLSPlayer.createClient() client.startPlay(url, { ... downgradeUrl: { hlsUrl: // hls的播放地址 flvUrl: // flv的播放地址 } ... })
降级回调
降级播放后,会有回调事件。
const client = HWLLSPlayer.createClient()
client.on('player-changed', (mediaFormat) => {
    // mediaFormat: hls、flv
})
 
   父主题: 最佳实践
  
  
     
      