首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有一定质量的Init dash.js

具有一定质量的Init dash.js
EN

Stack Overflow用户
提问于 2018-08-27 08:19:23
回答 1查看 994关注 0票数 1

问题如何在初始化流之前用正确的质量初始化dash.js?

问题:在使用dash.js设置质量时,当播放开始时,我会得到绿色工件(见下图)。通过响应STREAM_INITIALIZED事件,在流初始化后设置质量。

上下文:,我正在尝试创建一个带有破折号的应用程序,用户应该能够选择播放质量。此选择将通过使用如下所示的cookie来设置:cookies.set('preferredQuality', quality.value);,其中值对应于0、1、2或3(在dash.js中设置,setQualityForsetAutoSwitchQualityFor设置为false)。

然后,在创建破折号实例的逻辑中,我侦听STREAM_INITIALIZED事件并尝试在那里设置质量。

this.dashJsInstance.on(dashjs.MediaPlayer.events.STREAM_INITIALIZED, this.onStreamInitialized, this);

代码语言:javascript
复制
onStreamInitialized: function() {
  const quality = cookies.get('preferredQuality');
  if (quality !== -1) {
    this.dashJsInstance.setAutoSwitchQualityFor('video', false);
    this.dashJsInstance.setQualityFor('video', quality);
  }
},

这将导致图像中显示的绿色伪影。

EN

回答 1

Stack Overflow用户

发布于 2019-04-05 17:46:46

不确定这是否是正确的答案,但通过侦听onFragmentLoaded事件解决了这个问题。这绝不是最好的答案,但有效。我们通过这样的操作来实现它:

代码语言:javascript
复制
onFragmentLoaded: function(e) {
    if (e.request && e.request.type === 'InitializationSegment') {
        const preferredQuality = quality // Preferred quality;
        const currentQuality = current // Current quality;

        if (currentQuality !== preferredQuality) {
            this.dashJsInstance.setQualityFor('video', preferredQuality);
            this.dashJsInstance.setAutoSwitchQualityFor('video', false);
        }
    }
},
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52035242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档