I have the following code:
$.getJSON('/video/getToken', function (data, status) {
identity = data.identity;
navigator.mediaDevices.getUserMedia({
audio: true,
video: {width: 320, height: 240}
})
.then(function (mediaStream) {
console.log("Obtained " + mediaStream.getTracks() +" from local and joining room" + roomName);
var connectOptions = {
name: roomName,
logLevel: 'off',
tracks: mediaStream.getTracks(),
preferredVideoCodecs: ['VP9', 'VP8']
};
return Video.connect(data.token, connectOptions);
})
.then(roomJoined)
.catch(function (error) {
log('Could not connect to Twilio: ' + error.message);
});
});
function roomJoined(room) {
const localParticipant = room.localParticipant;
localParticipant.on('trackPublicationFailed', function(error, localTrack){
console.log('Failed to publish track %s to room "%s": %s', localTrack,roomName, error.message);
});
localParticipant.on('trackPublished', function(localTrackPublication){
console.log('Succesfully published track %s with name %s to room "%s"', localTrackPublication.trackSid, localTrackPublication.trackName, roomName);
});
}
According to the documentation, the "trackPublished" event is fired when a participant publishes media to a room and the "trackPublicationFailed" event is fired when the publication fails. However none of the events seem to fire in my case.
I can verify that the tracks were in fact published to the room and still the "trackPublished" event was not fired.
twilio-video at 1.6.1 Chrome: 63 Ubuntu: 16.04