2014-07-01 3 views
1

J'essaye de réaliser une application basée sur opentok. Le projet que j'ai en tête est une application dont certains abonnés, chaque abonné peut parler avec un opérateur depuis son téléphone et l'opérateur doit rester sur l'ordinateur. Tout simplement l'application doit appeler un opérateur et enregistrer l'appel dans le serveur. Je pense que je dois créer deux applications: une qui fait l'appel du téléphone et le connecte à la session et une autre avec la session déjà ouverte sur l'ordinateur qui enregistre également l'appel. Ou pas? Ou bien la session est-elle déjà ouverte sur les ordinateurs de l'opérateur et les personnes peuvent se connecter à la session depuis le téléphone? Comment est-il possible de créer un videochat un à un avec un seul tokenId? Comment puis-je créer un nouvel appel chaque fois qu'une personne appelle un opérateur? Si quelqu'un a suggéré, tutoriel ou des conseils sur la façon de commencer à répondre s'il vous plaît .... Merci à l'avanceOpenTok suggestion comment commencer à construire une application

I'have créer l'application cordova basé sur tutoriel avec ce code à l'intérieur des index.js

onDeviceReady: function() { 

    // Getting OpenTokRTC's room's credentials. 
    // To use your own room in opentokrtc, change cordova to room of your choice 
    // -> ie: https://opentokrtc.com/myroom.json 
    // To use your own credentials 
    // replace data.apiKey, data.sid, and data.token with your own 

    var apiKey = "xxx"; 
    var sessionId = "xxxx"; 
    var token = "xxx"; 

    // Very simple OpenTok Code for group video chat 
    var publisher = TB.initPublisher(apiKey,'myPublisherDiv'); 

    var session = TB.initSession(apiKey, sessionId); 
    session.on({ 
    'streamCreated': function(event){ 
     var div = document.createElement('div'); 
     div.setAttribute('id', 'stream' + event.stream.streamId); 
     document.body.appendChild(div); 
     session.subscribe(event.stream, div.id, {subscribeToAudio: false}); 
    } 
    }); 

    session.connect(token, function(){ 
    session.publish(publisher); 
    }); 

}, 
    // Update DOM on a Received Event 
    receivedEvent: function(id) { 
    } 

Et dans mon application page web j'AVONS écrire ce code provenant du tutoriel opentok

<div id="myPublisherDiv"></div> 
    <script type="text/javascript"> 
     // Initialize API key, session, and token... 
     // Think of a session as a room, and a token as the key to get in to the room 
     // Sessions and tokens are generated on your server and passed down to the client 
     var apiKey = "xxx"; 
     var sessionId = "xxx"; 
     var token = "xxx"; 

     var publisher = TB.initPublisher(apiKey,'myPublisherDiv'); 
     var session = TB.initSession(sessionId); 

     session.addEventListener('sessionConnected', sessionConnectedHandler); 
     session.connect(apiKey, token); 

     function sessionConnectedHandler(event) { 
     var publisher = TB.initPublisher(apiKey, 'myPublisherDiv'); 
     session.publish(publisher); 
     } 

    </script> 

ma question est: comment je peux construire une deuxième div avec le flux vidéo pris de l'iPhone dans l'application page Web? Et une autre chose qui me dérange beaucoup est: dans tous les cas, je dois configurer mon serveur avec le SDK?

Répondre

0

Vous pouvez demander à tout le monde de se connecter à la même session. Lorsque vous obtenez l'événement connectionCreated, stockez-le dans un objet. Lorsque son tour d'une personne, le signaler à commencer à publier, puis abonnez-vous à son flux:

Par exemple, du côté de l'opérateur:

var connections = {}; 
session.on('connectionCreated', function(event){ 
    connections[event.connection.connectionId] = event.connection.connectionId; 
    // Create a button for that stream 
}); 

Lorsque l'opérateur clique sur le flux qu'il veut se connecter,

// retrieve streamId from button, disconnect from other streams 
session.signal(
    { 
    type: "publish", 
    data: "operator", 
    to: connections[connectionIdFromButton] 
    }, 
    function(){...} 
); 

Lorsque l'utilisateur reçoit le signal, commencez la publication.

session.on("signal:publish", function(event){ 
    session.publish(...) 
}); 
+0

mmm en théorie semblent simples, mais pouvez-vous être un peu plus précis? par exemple avec une ligne de code? Maintenant, je peux connecter mon appareil à une page avec le code javascript sur mon site mais je peux voir les deux vidéos sur mon appareil et non sur ma page web ... si vous voulez poster mon code – emanuele

+0

Si vous mettez à jour votre question pour inclure un échantillon code je peux vous donner quelques suggestions. et voyez ce que vous faites mal. – songz

+0

ok merci pour votre réponse! – emanuele

Questions connexes