2012-10-22 14 views
6

Ho guardato a questi linkOpenTok - Come pubblicare/annullare la pubblicazione manualmente?

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

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

ma la loro sono esempi per publishingunpublishing manualmente, vale a dire, la pubblicazione/Annullamento pubblicazione senza l'uso del gestore di eventi 'streamCreated'/'streamDestroyed' rispettivamente.

Il motivo per cui voglio farlo è che ho un pulsante per pubblicare/annullare la pubblicazione in modo che l'utente possa farlo a proprio piacimento.

C'è un modo per farlo?

risposta

2

Sì ed è molto semplice. Controlla il codice sorgente prepublish per vedere come. Ci sono 2 funzioni, startPublishing() e stopPublishing() che realizzano questo.

Principalmente usano session.publish(publisher); da pubblicare e session.unpublish(publisher); da annullare.

Qui è il codice che ho usato per lavorare fuori:

// 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

Il mio codice usa la .publish() e .unpublish() metodi troppo. Il problema è che quando pubblico dopo la pubblicazione, non mostra nulla. – arvinsim

+2

Ho anche provato la demo dal vivo sul link che hai dato. Ho cercato di non pubblicare e quindi ripubblicare. Non ha funzionato – arvinsim

+2

Non dimenticare che quando si annulla la pubblicazione, si distrugge il div che ha sostituito, quindi è necessario assicurarsi che possa collegarsi nuovamente a qualcosa. Ho avuto un problema simile! –