OpenTok - 如何手动发布/取消发布?

时间:2012-10-22 09:07:53

标签: api videochat video-conferencing tokbox

我查看了这些链接

http://www.tokbox.com/opentok/api/tools/js/documentation/overview/publish.html

http://www.tokbox.com/opentok/api/tools/js/tutorials/overview

但它们不是手动发布发布的示例,也就是说,不分别使用'streamCreated'/'streamDestroyed'事件处理程序发布/取消发布。

我想这样做的原因是我有一个发布/取消发布的按钮,以便用户可以随意进行。

有办法做到这一点吗?

1 个答案:

答案 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');
}