Unable to createLocalScreenTracks with LiveKit on Safari 14

54 Views Asked by At

I'm using LiveKit client API createLocalScreenTracks to get screen stream but no share screen request window shown up and it keep giving me error when I try to publish the track. Here the environment I'm using and the code:

  • Safari 14.1.2 (14611.3.10.1.7)
  • livekit-client 1.4.1
import {createLocalScreenTracks} from 'livekit-client';

...
//Create room
...
audioTrack = await createLocalAudioTrack({
                echoCancellation: true,
                noiseSuppression: true,
            });
shareScreenTracks = await createLocalScreenTracks({ audio: false });

room.localParticipant.publishTrack(shareScreenTracks[0].mediaStreamTrack);
room.localParticipant.publishTrack(audioTrack);
1

There are 1 best solutions below

0
On BEST ANSWER

The permission requests order does matter. After moving audio permission request to below share screen request, I can make my code work. The working code:

shareScreenTracks = await createLocalScreenTracks({ audio: false });
audioTrack = await createLocalAudioTrack({
                echoCancellation: true,
                noiseSuppression: true,
            });

room.localParticipant.publishTrack(shareScreenTracks[0].mediaStreamTrack);
room.localParticipant.publishTrack(audioTrack);