我查看了这些链接
http://www.tokbox.com/opentok/api/tools/js/documentation/overview/publish.html
http://www.tokbox.com/opentok/api/tools/js/tutorials/overview
但它们不是手动发布发布的示例,也就是说,不分别使用'streamCreated'/'streamDestroyed'事件处理程序发布/取消发布。
我想这样做的原因是我有一个发布/取消发布的按钮,以便用户可以随意进行。
有办法做到这一点吗?
答案 0 :(得分:4)
是的,非常简单。查看prepublish源代码以了解具体方法。有两个函数,startPublishing()和stopPublishing()来实现这一目标。
主要是他们使用session.publish(publisher);
发布,session.unpublish(publisher);
取消发布。
这是我以前用过的代码:
// Called by a button to start publishing to the session
function startPublishing() {
if (!publisher) {
var parentDiv = document.getElementById("myCamera");
var publisherDiv = document.createElement('div'); // Create a div for the publisher to replace
publisherDiv.setAttribute('id', 'opentok_publisher');
parentDiv.appendChild(publisherDiv);
var publisherProps = {
width : VIDEO_WIDTH,
height : VIDEO_HEIGHT
};
publisher = TB.initPublisher(apiKey, publisherDiv.id, publisherProps); // Pass the replacement div id and properties
session.publish(publisher);
show('unpublishLink');
hide('publishLink');
}
}
//Called by a button to stop publishing to the session
function stopPublishing() {
if (publisher) {
session.unpublish(publisher);
}
publisher = null;
show('publishLink');
hide('unpublishLink');
}