2014-07-01 3 views
1

나는 opentok을 기반으로 응용 프로그램을 달성하려고합니다. 내가 염두에두고있는 프로젝트는 일부 가입자, 모든 가입자가 자신의 앱 전화에서 운영자와 이야기 할 수있는 앱이며 운영자는 컴퓨터에 있어야합니다. 단순히 앱에서 교환 원에게 전화를 걸고 서버에 통화를 기록해야합니다. 나는 두 가지 응용 프로그램을 만들어야한다고 생각합니다. 하나는 전화에서 전화를 걸고 다른 하나는 세션에 연결하고 다른 하나는 이미 통화를 기록한 컴퓨터에서 열린 세션과 연결하는 것입니다. 안 그래요? 또는 세션이 이미 운영자 컴퓨터에서 열려 있고 사람들이 전화 세션에서 연결할 수 있습니까? 하나의 tokenId 만 사용하여 1 대 1 비디오 킷을 만드는 방법은 무엇입니까? 한 사람이 교환 원에게 전화 할 때마다 새 전화를 어떻게 만들 수 있습니까? 사람이 제안, 자습서 또는 답변하시기 바랍니다 시작하는 방법에 대한 팁 .... 사전에 감사가있는 경우OpenTok 제안 응용 프로그램을 빌드하는 방법

I'have하는 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) { 
    } 

그리고 내 웹 페이지에서 응용 프로그램 난했습니다

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

내 질문 인 opentok 튜토리얼에서 가져온이 코드 쓰기 : 내가 웹 페이지 응용 프로그램 내에서 아이폰에서 촬영 한 비디오 스트림과 두 번째 DIV를 구축 할 수있는 방법을? 나를 혼란에 빠뜨리는 또 다른 일은 : 모든 경우에 SDK로 내 서버를 설치해야합니까?

답변

0

모든 사람이 동일한 세션에 연결할 수 있습니다. connectionCreated 이벤트를 받으면 객체에 저장하십시오.

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

운영자가 자신이 연결하고자하는 스트림을 클릭하면

: 운영자의 측면에 예를 들어

: 그 사람의 차례, 출판을 시작하고 자신의 스트림에 가입하라고 신호 할 때

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

사용자가 신호를 받으면 게시를 시작하십시오.

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

이론상으로는 간단하지만 조금 더 구체적 일 수 있습니까? 예를 들어 코드 줄이 있습니까? 이제 내 웹 사이트에서 자바 스크립트 코드가있는 페이지에 기기를 연결할 수 있지만 내 웹 페이지가 아닌 내 기기에서 두 개의 동영상 만 볼 수 있습니다 ... 내 코드를 게시하고 싶다면 – emanuele

+0

샘플을 포함하도록 질문을 업데이트하는 경우 코드 몇 가지 제안을 할 수 있습니다. 그리고 당신이 뭘 잘못하고 있는지보십시오. – songz

+0

답변 해 주셔서 감사합니다. – emanuele

관련 문제