8

我看了这些链接

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

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

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

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

有没有办法做到这一点?

4

1 回答 1

4

是的,而且非常简单。查看预发布源代码以了解如何操作。有两个函数 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');
}
于 2012-10-22T09:38:59.567 回答