Kaltura 风味转换

Kaltura Flavor Switching

我目前正在使用 Kaltura HTML5 Player 版本。 2.26. documentation 建议您可以通过 "doSwitch" 通知在视频风格之间切换,如下所示:

kdp.sendNotification("doSwitch", { flavorIndex: 3 });

根据 kdp.evaluate("{mediaProxy.kalturaMediaFlavorArray}"),我使用的视频有 6 种不同的风格,但是 运行 这与各种不同的索引没有明显的效果。我希望看到 kdp 触发 switchingChangeStarted 事件,就像使用源选择器插件 UI 时发生的那样,但只有沉默。

通过 github repo 搜索 doSwitch,我实际上没有看到它在任何地方实施。这是某种遗失的方法吗?如果没有,我如何让 doSwitch 通知生效?

KDP 是 Kaltura Flash 播放器,它具有此切换比特率的通知。 当加载 chromeless flash 播放器并单击源选择器按钮时,该通知仍在内部使用。但它看起来不像是V2播放器通知。

您可以通过添加一个新插件来扩展播放器,该插件将公开这样一个通知,该通知将切换源,类似于源选择器的操作方式 (sourceSelector.js::208):

_this.getPlayer().switchSrc( source )

请注意,来源列表可能包含无法在桌面上播放的来源,您不应使用这些来源进行切换。

为了后代,这就是我最终按照 Roman 的建议所做的事情。下面的插件几乎是最低限度的,但这正是我想要的。

在嵌入中,我们需要声明自定义插件:

kWidget.embed({
  ...
  "flashvars": {
    ...
    "sourceExposure": {
      "plugin": true,
      "iframeHTML5Js": "js/sourceExposure.js"
    }
  }
}

js/sourceExposure.js中,我们需要声明一个插件来提供对自定义事件的响应(这里,"customDoSwitch"):

(function(mw,$) {
  mw.kalturaPluginWrapper(function() {
    mw.PluginManager.add( 'sourceExposure', mw.KBaseComponent.extend({

      setup: function() {
        var _this = this;

        this.bind('customDoSwitch', function(evt, flavorIndex) {
          var sources = _this.getSources().slice(0)
          if (flavorIndex >= sources.length) {
            _this.log("Flavor Index too large.");
            return;
          }
          _this.getPlayer.switchSrc(_this.getSources()[flavorIndex]);
        })
      },

      getSources: function() {
        return this.getPlayer().getSources()
      }
    }));
  });
})(window.mw, window.jQuery)

当我们想要切换到不同的风味时,我们现在可以使用自定义事件并传递风味索引:

kdp.sendNotification("customDoSwitch", 2) //switches to flavor index 2