【问题标题】:enyo.js to integrate with other javascript componentenyo.js 与其他 javascript 组件集成
【发布时间】:2015-01-08 04:36:00
【问题描述】:

我正在尝试将 enyo.js 与 opentok 集成。不知道如何包装将从 opentok 的 javascript 生成的视频组件。如果有人可以帮助我如何将 enyo 与 opentok 等外部 javascript 集成,那就太好了。

我在 jsfiddle 示例下创建了视频类型和 opentok 示例代码。我想使用 enyo 类型生成视频,但我是新手,需要 enyo 专家的帮助。

jsfiddle 链接

http://goo.gl/nrsZQJ

【问题讨论】:

  • 我有点不清楚你所说的“生成视频”是什么意思以及集成的工作原理。通常,在包装非 enyo 组件时,您将在 rendered() 方法中创建非 enyo 组件,并在包装​​器上具有调用非 enyo 组件的方法。你能用 enyo.Video 吗?

标签: enyo opentok


【解决方案1】:

我将根据我认为您想要完成的任务来尝试回答这个问题。我们需要做的是围绕 OpenTok 视频流创建一个包装器。我对它不是很熟悉,但看起来我们可以让它将它的视频渲染到我们指定的 div 中。所以,我们要做的是创建一个包装对象,它(默认情况下)是一个 div 元素,并使用该元素作为 OpenTok 的initPublisher 方法的目标。一旦一种类型被渲染,我们可以使用它的hasNode() 方法来获取有问题的节点。因此,我们最终得到如下内容:

        var publisher = OT.initPublisher(this.hasNode());

为确保我们拥有该节点,我们将在 rendered 方法中设置调用:

    rendered: function() {
        this.inherited(arguments);
        if(this.session) {
            this.session.connect(token, this.bindSafely(this.connected));
        }
    },

我们可以通过使用session 成员来为种类添加包装器方法来访问我们需要的东西。您还可以隐藏发布者或您需要的任何其他部分。

这是一个基于您的简单示例的工作小提琴。我已将 JavaScript 移到包装器对象中。

http://jsfiddle.net/6z9n65ty/4/

您需要覆盖包装器上的destroy,以便正确清理 OpenTok 会话。

【讨论】:

  • 先调用哪个方法?创建还是渲染?
  • 首先调用创建。 Rendered 只有在准备好放入 DOM 时才会调用。
  • 你能帮我如何在订阅div下生成div吗? streamCreated: function(event) { this.session.subscribe(event.stream, ); }, jsfiddle.net/6z9n65ty/53
  • 你可以做很多事情。您可以使用createComponent() 在其中制作一个组件,或者您可以只使用hasNode() 来获取HTML 元素并将innerHTML 设置为包含一个div。或者,createElement() 并将其附加到节点。
  • 尝试如下但未按预期工作。 this.createComponent({tag: "li", name: "test", container : this.$.subscribeButton}); this.render(); this.session.subscribe(event.stream, subscribeButton);
猜你喜欢
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
相关资源
最近更新 更多