LocalTracks on Safari


Hello Guys,
I’m trying to run jitsi-meet on our AngularJS app and all seems fine here except one thing:
We have problems with Safari.
My localtracks consist only of one audio track - the internal mic.
However on the other browsers we do get two for audio and video and it all works fine there.

I’ve listed the devices using JitsiMeetJS.mediaDevices.enumerateDevices
and the list has array of four (including a video device for the iSight camera).

Along with that we get a logged error from the JitsiMeetJS.getGlobalOnErrorHandler showing almost nothing to me: (attachmed to this post)

I would highly appreciate any help on that problem.

p.s. I’m testing Safari on MacOS 10.13 (Safari v12.1)



It’ll be tricky to help debug because, like you said, there isn’t much info there. What happens on line 1508 of app_controllers_spa_videochat? Do you have your app deployed somewhere for testing?



On that line I have:
window.onerror = JitsiMeetJS.getGlobalOnErrorHandler();

But the problem rises when I try to do JitsiMeetJS.createLocalTracks({ devices: [ ‘video’ ] })




What happens if you would set the browser debugger to pause on exception? Does it at least stop on the line that might be triggering the error?



OK Here is what I have so far.
This error rises only if I use window.onerror = JitsiMeetJS.getGlobalOnErrorHandler();
But, even if I have it commented I have the following which seems to be the problem:

  • I’m calling this:
    JitsiMeetJS.createLocalTracks({ devices: [ 'audio', 'video' ] })
    .catch(error => {
    console.log('DEBUG> error on JitsiMeetJS.createLocalTracks', error);
    throw error;

And the DEBUG message doesn’t appear on the console in case there is an error on the createLocalTracks.
Another thing is that on the onLocalTracks I get an array with only one single audio track.
Despite the result of JitsiMeetJS.mediaDevices.enumerateDevices where I get three audio and one video track.

This whole thing works like charm on all the other browsers (Chrome, Firefox, Opera, Chromium).

Thanks in advance,



Safari on meet.jit.si currently does not support video. (beta.meet.jit.si does right now and meet.jit.si should soon.) enumerateDevices is a pretty much the WebRTC built in call to get all connected available useable a/v devices, regardless of browser support for those features in meet.jit.si. createLocalTracks is a bunch of logic wrapped around the WebRTC built in getUserMedia(), which returns a track for each specified device.