如何使用Enyojs以编程方式添加新的div并附加到opentok的订阅者

时间:2015-02-11 03:52:35

标签: enyo opentok

这是stackflow qustion的延伸。我想以编程方式创建div并将opentok订阅者cam附加到它,并且所有订阅者cam都需要在父div“#subscription”下。请告诉我在我的代码中我做错了什么。

的jsfiddle

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

更新了Jsfiddle

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

订阅div的代码

    enyo.kind({
    name : "blanc.SubscriberWrapper",
    showing: true,
    stream: null,
    session: null,
    create: function(){
        this.inherited(arguments);
        if(this.stream != null && this.session != null){
            this.subscribe();
        }
    },
    subscribe: function(){
        this.session.subscribe(this.stream, this.hasNode());
    }
});

更新

我想将流附加到subscribeButton,下面的代码将第一个订阅者流添加到“#subscribeButton”。如果存在第二个订阅流,则它将用第二个流覆盖先前的订阅凸轮视频。我希望在屏幕上查看所有订阅者。所以我试图使用create function创建新的div。

  streamCreated: function (event) {
      this.session.subscribe(event.stream, subscribeButton);
     // Add subscriber stream to a new div 
     //   this.createComponent({kind: "blanc.SubscriberWrapper", name : event.stream.id, stream: event.stream, session: this.session});
//  this.render();
  },

的jsfiddle

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

1 个答案:

答案 0 :(得分:0)

我认为代码的问题是hasNode()会返回false(或者是null吗?)因为节点尚未呈现。将create:更改为rendered:,它可能会有效。

你小提琴中的标记已经过期,所以我无法进一步测试,但却无法进行测试。创建新组件的代码在第一时间看起来是正确的。

你没有说出代码执行时发生了什么--did-。如果你只是得到空白的div,那么我的假设是正确的。