2017-08-23 9 views
0

Twilio Javascript SDKとPHPを使用してtwilioビデオコーリング機能を実装しました。 githubのクイックスタートチュートリアルで古いsdkとコードを使用すると、すべてが正常に動作しています(IOSはサポートしていませんが)。最新のSDKを使用すると、エラーが発生し、機能はもはや動作しなくなります。 index.htmlファイルで使用Twilioを使用したビデオコール

古いTwilioのJavaScript SDK <script src="//media.twiliocdn.com/sdk/js/video/releases/1.0.0-beta2/twilio-video.js"></script>

使用される新しいTwilioのJavaScript SDK: <script src="//media.twiliocdn.com/sdk/js/video/v1/twilio-video.min.js"></script>

そして、これは私が最新のものを使用したとき、私は私のコンソールに表示されるエラーです。 enter image description here

私のindex.jsファイルです。中

var videoClient; 
var activeRoom; 
var previewMedia; 
var identity; 
var roomName; 

// Check for WebRTC 
if (!navigator.webkitGetUserMedia && !navigator.mozGetUserMedia) { 
    alert('WebRTC is not available in your browser.'); 
} 

// When we are about to transition away from this page, disconnect 
// from the room, if joined. 
window.addEventListener('beforeunload', leaveRoomIfJoined); 
$(document).ready(function() { 
    console.log('testing'); 

$.getJSON('./token.php', function (data) { 
    identity = data.identity; 

    console.log(data); 
    // Create a Video Client and connect to Twilio 
    videoClient = new Twilio.Video.Client(data.token); 
    document.getElementById('room-controls').style.display = 'block'; 

    // Bind button to join room 
    document.getElementById('button-join').onclick = function() { 
    roomName = document.getElementById('room-name').value; 
    if (roomName) { 
     log("Joining room '" + roomName + "'..."); 

     videoClient.connect({ to: roomName}).then(roomJoined, 
     function(error) { 
      log('Could not connect to Twilio: ' + error.message); 
     }); 
    } else { 
     alert('Please enter a room name.'); 
    } 
    }; 

    // Bind button to leave room 
    document.getElementById('button-leave').onclick = function() { 
    log('Leaving room...'); 
    activeRoom.disconnect(); 
    }; 
}); 

}); 

// Successfully connected! 
function roomJoined(room) { 
    activeRoom = room; 

    log("Joined as '" + identity + "'"); 
    document.getElementById('button-join').style.display = 'none'; 
    document.getElementById('button-leave').style.display = 'inline'; 

    // Draw local video, if not already previewing 
    if (!previewMedia) { 
    room.localParticipant.media.attach('#local-media'); 
    } 

    room.participants.forEach(function(participant) { 
    log("Already in Room: '" + participant.identity + "'"); 
    participant.media.attach('#remote-media'); 
    }); 

    // When a participant joins, draw their video on screen 
    room.on('participantConnected', function (participant) { 
    log("Joining: '" + participant.identity + "'"); 
    participant.media.attach('#remote-media'); 
    }); 

    // When a participant disconnects, note in log 
    room.on('participantDisconnected', function (participant) { 
    log("Participant '" + participant.identity + "' left the room"); 
    participant.media.detach(); 
    }); 

    // When we are disconnected, stop capturing local video 
    // Also remove media for all remote participants 
    room.on('disconnected', function() { 
    log('Left'); 
    room.localParticipant.media.detach(); 
    room.participants.forEach(function(participant) { 
     participant.media.detach(); 
    }); 
    activeRoom = null; 
    document.getElementById('button-join').style.display = 'inline'; 
    document.getElementById('button-leave').style.display = 'none'; 
    }); 
} 

// Local video preview 
document.getElementById('button-preview').onclick = function() { 
    if (!previewMedia) { 
    previewMedia = new Twilio.Video.LocalMedia(); 
    Twilio.Video.getUserMedia().then(
    function (mediaStream) { 
     previewMedia.addStream(mediaStream); 
     previewMedia.attach('#local-media'); 
    }, 
    function (error) { 
     console.error('Unable to access local media', error); 
     log('Unable to access Camera and Microphone'); 
    }); 
    }; 
}; 

// Activity log 
function log(message) { 
    var logDiv = document.getElementById('log'); 
    logDiv.innerHTML += '<p>&gt;&nbsp;' + message + '</p>'; 
    logDiv.scrollTop = logDiv.scrollHeight; 
} 

function leaveRoomIfJoined() { 
    if (activeRoom) { 
    activeRoom.disconnect(); 
    } 
} 

コードそのgithub(参照としてクイックスタートサンプルを使用して)が最近変更されており、そのうち、私はそれが間違っているところのか分からないので、彼らは、代わりにexpress.jsを使用しています。誰かがこれを解決するのを助けることができますか?

+1

Twilio.Video.connect(token、{name: 'room-name'})を使用してください。 – mirvatJ

答えて

1

ここではTwilioの開発者のエバンジェリストです。

ベータ版とリリース版の間で、ライブラリを初期化する方法を変更しました。あなたはもはやコンストラクタを使用しないので、そのエラーが表示されます。

代わりにTwilio.Video.connect(token, { name: 'room-name' })を使用して、参加した後に解決する約束を返してください。

完全なコード例とバージョン1 SDKの使用方法については、latest Twilio Video JS documentationを参照してください。

それがまったく役に立ったら教えてください。

+0

助けてくれてありがとう。共有したリンクにあるようにコードを実装し、問題は解決されました。しかし、私は部屋の名前や接続ボタンを入力するための入力ボックスが表示されないので、新しい問題が発生しました。コンソールに[this](https://ibb.co/j5WJ2Q)のようなエラーもありません。 githubに[code](https://github.com/nasreekar/twilio_php)をアップロードして共有しました。あなたは私が間違ってどこに行ったかを確認して教えてくれますか? TIA – ASN

+1

わかりません。私は 'document.getElementById( 'room-controls')で何が起こったのかを記録してデバッグを開始します。なぜなら、それが動作していなければ、あなたの入力は表示されないからです。 – philnash

関連する問題