2012-10-22 12 views
6

I wyglądała na te łączyOpenTok - jak ręcznie opublikować/cofnąć publikację?

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

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

ale ich nie są przykładami publishingunpublishing ręcznie, to znaczy, Wydawnictwo/wycofaniu publikacji bez użycia 'streamCreated'/program obsługi zdarzeń 'streamDestroyed' odpowiednio.

Powodem, dla którego chcę to zrobić jest to, że mam przycisk do opublikowania/cofnięcia publikacji, aby użytkownik mógł to zrobić do woli.

Czy istnieje sposób, aby to zrobić?

Odpowiedz

2

Tak i to jest bardzo proste. Sprawdź kod źródłowy prepublish, aby zobaczyć, jak to zrobić. Istnieją dwie funkcje: startPublishing() i stopPublishing(), które to umożliwiają.

Przede wszystkim używają one session.publish(publisher); do publikowania i session.unpublish(publisher); do cofnięcia publikacji.

Oto kod użyłem do pracy przy:

// 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'); 
} 
+2

Mój kod wykorzystuje .publish() i .unpublish() metody też. Problem polega na tym, że kiedy publikuję publikację po jej wycofaniu, to nic nie pokazuje. – arvinsim

+2

Próbowałem także wersji demonstracyjnej na żywo pod linkiem, który podałeś. Próbowałem cofnąć publikację, a następnie ponownie ją opublikować. Nie działa. – arvinsim

+2

Nie zapomnij, kiedy cofniesz publikację, niszczy element div, który został zastąpiony, więc musisz się upewnić, że może się do czegoś dołączyć. Miałem podobny problem! –

Powiązane problemy