这是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
答案 0 :(得分:0)
我认为代码的问题是hasNode()
会返回false
(或者是null
吗?)因为节点尚未呈现。将create:
更改为rendered:
,它可能会有效。
你小提琴中的标记已经过期,所以我无法进一步测试,但却无法进行测试。创建新组件的代码在第一时间看起来是正确的。
你没有说出代码执行时发生了什么--did-。如果你只是得到空白的div,那么我的假设是正确的。