Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Galene issues with Safari #249

Open
2 of 6 tasks
jech opened this issue Jan 16, 2025 · 1 comment
Open
2 of 6 tasks

Galene issues with Safari #249

jech opened this issue Jan 16, 2025 · 1 comment

Comments

@jech
Copy link
Owner

jech commented Jan 16, 2025

Known issues with the default Galene client on Safari.

  • Galene requests the microphone at login time in order to enable autoplay; I am not aware of a way to avoid that.
  • The fake microphone stream is opened too early. Fixed in edd91a8
  • The fake microphone stream is not closed at logout. Fixed in edd91a8
  • Screen sharing hangs on occasion; it looks like Safari is not sending empty P frames when nothing changes, a possible solution would be to send either a PLI or a Generic NACK if we haven't received a frame in a few seconds;
  • Background blur is disabled https://lists.galene.org/galene/[email protected]/T/
  • Videos don't always close iOS Safari : need to click twice to close video  #219
@jech
Copy link
Owner Author

jech commented Jan 17, 2025

Comment by @davidzhao on the Pion channel:

it's possible to not request microphone for autoplay, but it's complicated.
The solution we found was to call play() explicitly and handle NotAllowedError . When that error is caught, display UI and let user click on a button to consent audio playback.
From the somewhere in the same onClick handler, call play again. Safari has one additional "gotcha" though, if the audio playback stops at any point, and then it tries to start again, it'll require this permission again. It's not great when your app is backgrounded. Here's our workaround to handle that case.
https://github.com/livekit/client-sdk-js/blob/cd425c8ca821d412f45b70a80bea4acb5e563cf9/src/room/track/Track.ts
https://github.com/livekit/client-sdk-js/blob/cd425c8ca821d412f45b70a80bea4acb5e563cf9/src/room/Room.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant