我们如何使用openTok连接为单个会话生成的不同令牌的视频流

时间:2014-03-21 05:09:32

标签: javascript video-streaming webrtc opentok tokbox

我希望通过在sessionId下为其提供单独的令牌来连接会话中的所有用户,以便他们可以查看彼此的流式传输。但是用户只能看到他们的分歧。我只需要为每个用户在我的页面上为div分配一个连接到任何特定sessionId的令牌。

这是用户只能看到他们的流媒体的代码

 <script src="http://static.opentok.com/webrtc/v2.0/js/TB.min.js" ></script>
    <script src="https://static.opentok.com/webrtc/v2.0/js/TB.min.js" ></script>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
   <script type="text/javascript">

    var publisher;
    var session;

    var apiKey = "44686132";


    var sessionId = "1_MX40NDY4NjEzMn4xMjcuMC4wLjF-V2VkIE1hciAxOSAyMDo1ODozNyBQRFQgMjAxNH4wLjAzMTA3MTAwN34";
    var token = document.getElementById("<%= hdn1.ClientID %>").value;


    publisher = TB.initPublisher(apiKey);

    session = TB.initSession(sessionId);

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


    session.addEventListener("streamCreated",
                           streamCreatedHandler);


    function sessionConnectedHandler(event) {
        alert("sessionConnectedHandler");


        subscribeToStreams(event.streams);
        session.publish(publisher);

    }
        function subscribeToStreams(streams) {

                if (stream.connection.connectionId
               != session.connection.connectionId) {
                    //var streams = event.streams;
                    for (var i = 0; i < streams.length; i++) {
                        var stream = streams[i];

                        var newDivId = "streams" + stream[i].streamId;
                        var newDiv = $('<div />', { id: newDivId });
                        $('body').append(newDiv);
                        if (stream.connection.connectionId
               != session.connection.connectionId) {
                            session.subscribe(stream[i], newDivId);
                        }

                }
            }
        }
        function streamCreatedHandler(event) {
            subscribeToStreams(event.streams);

        }

</script>

此外,alert("sessionConnectedHandler");在内    function sessionConnectedHandler(event)永远不会被调用。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

请咨询您的浏览器控制台,它将帮助您解决大部分问题。以下是我在代码中发现的一些快速错误:

  • 您多次包含javascript库。
  • 您的令牌可能未正确检索。请在控制台中打印您的令牌,并验证它看起来像一个令牌而不是空或给您一个错误。
  • subscribeToStreams方法接收一组流。
  • 中没有定义方法中的流变量