OpenTok - Как опубликовать/отменить публикацию вручную?


person developarvin    schedule 22.10.2012    source источник


Ответы (1)


Да и это очень просто. Ознакомьтесь с исходным кодом 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');
}
person Rick Donohoe    schedule 22.10.2012
comment
В моем коде также используются методы .publish() и .unpublish(). Проблема в том, что когда я публикую после отмены публикации, он ничего не показывает. - person developarvin; 22.10.2012
comment
Я также попробовал живую демонстрацию по ссылке, которую вы дали. Пробовал отменить публикацию, а затем опубликовать заново. Не работает. - person developarvin; 22.10.2012
comment
Не забывайте, что когда вы отменяете публикацию, он уничтожает div, который он заменил, поэтому вам нужно убедиться, что он может снова к чему-то прикрепиться. У меня была аналогичная проблема! - person Rick Donohoe; 22.10.2012
comment
Также я не знал, что в учебнике этого еще не было, поэтому +1 за вопрос. - person Rick Donohoe; 22.10.2012