- Notifications
You must be signed in to change notification settings - Fork237
Add Safari speaker selection support#1635
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…ort for the Speaker Selection API on iOS and iPadOS.
|
CLAassistant commentedAug 27, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
lukasIO left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thanks for the PR!
I believe the speaker selection API comes with some more caveats (explicit user permission must be granted for output selection if no microphone is acquired yet).
I haven't tested this, but probably needs its own selection path viaMediaDevices.selectAudioOutput ?
| return( | ||
| (browser?.name==='Safari'&&compareVersions(browser.version,'26')>=0)|| | ||
| (browser?.os==='iOS'&&!!browser?.osVersion&&compareVersions(browser.osVersion,'26')>=0)|| | ||
| (browser?.os==='macOS'&&!!browser?.osVersion&&compareVersions(browser.osVersion,'26')>=0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
this check is not connected to checking against Safari, I believe?
With the next iteration of Apple OSes the Speaker Selection API is supported (https://developer.apple.com/documentation/safari-release-notes/safari-26-release-notes#WebRTC)
This PR adds support for it by:
isSafariSpeakerSelectionSupportedhelper functionsupportsSetSinkIdfixes#1568 at least for macOS.
In contrast tohttps://webrtc.github.io/samples/src/content/devices/input-output/ this PR does not (yet) fix the issue on iOS26