我们如何在 Shaka 播放器中获取当前渲染流的详细信息?

Posted

技术标签:

【中文标题】我们如何在 Shaka 播放器中获取当前渲染流的详细信息?【英文标题】:How can we get current rendering stream details in Shaka player? 【发布时间】:2020-03-16 23:30:37 【问题描述】:

getStats() api 提供正在下载的当前变体。有没有办法

    要获取当前的渲染变体? 在渲染变体发生更改时收到通知?

这两个都在 hls.js 中可用。

【问题讨论】:

嗨!你找到这个问题的答案了吗?我有同样的问题。我需要一种方法来获取当前播放的变体,以及当它发生变化时的事件。 两年前下面的代码对我有用。 【参考方案1】:

AdaptationEvent 现在有 oldTrack 和 newTrack 了。您应该能够从这些 Track 对象中获取所有必要的信息。

https://shaka-player-demo.appspot.com/docs/api/shaka.Player.html#.event:AdaptationEvent https://shaka-player-demo.appspot.com/docs/api/shaka.extern.html#.Track

【讨论】:

【参考方案2】:

这段代码可以工作。我们迭代可用的演绎版并记录当前处于活动状态(已使用)的演绎版。

// This is for bitrate change due to ABR
shakaPlayer.addEventListener('adaptation', onAdaptationChange);

//This is for bitrate change made by user
shakaPlayer.addEventListener('variantchanged', onAdaptationChange);

function onAdaptation(event)
    var tracks = shakaPlayerInstance.getVariantTracks();
    for (iterator = 0; iterator < tracks.length; iterator++)
      if (tracks[iterator].active)
        console.log("Bandwidth: " + tracks[iterator].bandwidth);
        break;
      
    
  

【讨论】:

以上是关于我们如何在 Shaka 播放器中获取当前渲染流的详细信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确向 Shaka 播放器提供 MPEG-DASH 清单?

现在如何知道在 SHAKA PLAYER 中传递 ContentProtectionCallback?

shaka 播放器从不触发“错误”监听器

Shaka 播放器无法在谷歌浏览器上加载 HLS

shaka configure 选择你想玩的表示和适应集

保存到离线而不使用 shaka 播放器创建播放器对象