Closed jwahdatehagh closed 4 years ago
Hi @jwahdatehagh ,
Thanks for writing in with your issue. From your logs, it looks like you are publishing the screen share track as soon as you join the Room. We currently have an open bug related to publishing Tracks within a very short period of each other, and you may be hitting it. Can you try passing the screen share track in ConnectOptions like this:
const tracks = await createLocalTracks();
const screenTrack = /* create screen share track */;
tracks.push(screenTrack);
connect('token', { tracks: tracks });
This should make sure all your tracks are published at once. Please let me know if this works for you.
Thanks,
Manjesh Malavalli JSDK Team
Thank you!
The screenshare works both when immediately publishing and when reloading after later publishing on the receiving end.
I can't imagine it has something to do with 'publishing' as it works fine when reloading on the receiving end (in my first example). On the receiving end - the publishedTrack event get's fired correctly, but the TrackPublication is never subscribed to (unless i reload the page entirely).
I sadly can't use your proposed solution as i don't want the users to immediately share their screen on load, but only when they choose to do so...
@jwahdatehagh ,
But in the case where you share the logs, it looks like you are immediately publishing the screen track just after joining the Room, which does not seem like the result of a user choosing to share the screen. If you redesign your app to publish the screen track only when the user clicks on a button, then there will be some time gap between the publishing of your mic + camera tracks and the publishing of your screen track. This should work without any issues. Please try it and let me know what you find.
Thanks,
Manjesh Malavalli JSDK Team
@manjeshbhargav - in the logs - there was about 30 seconds between joining the room and initiating the screenshare.
How long should i wait before starting the screenshare after joining a room for it to work?
I've tried up to two minutes (both before initiating and after successful publication), but that doesn't work either...
This issue kind of sounds similar to #954, but @akhil-kp-dasan says in his case the tracks don't get published at all. From reading his logs i think i can gather that in fact they do get published, but - just like in my case - they are never subscribed to.
From the docs (migrating from v1 to v2) i gathered that it is now possible to selectively subscribe to publications, but i can't find any resources or code on how to programmatically subscribe to a TrackPublication.
I think manually subscribing to tracks is only needed if we set automaticSubscription
to false in connection config. Also I am interesting in knowing which part of my logs suggests that the screen share track got published. Could you please point this out to me?
@akhil-kp-dasan oh i missread the logs, sorry - you are right... So these issues seem to be disconnected.
Oh i think this issue is related: https://github.com/twilio/twilio-video.js/issues/884
Hi @jwahdatehagh ,
twilio-video.js@2.5.0 is now available, which most likely has a fix for this issue. Can you please try it out and let me know if it works?
Thanks,
Manjesh Malavalli JSDK Team
@manjeshbhargav - wonderful! Works with 2.5.0
!
Code to reproduce the issue:
On the publisher side:
... and:
Expected behavior: I expect that the receiving participant automatically subscribes to the the published screen share after receiving the corresponding TrackPublication
Actual behavior: The receiving participant gets notified about the new TrackPublication (the
trackPublished
event is fired correctly, but the publication is never subscribed to.Logs (on the receiving end; I deleted my logging statements):
Software versions: