Bug 230902 - REGRESSION(Safari 15 - iOS15): [WebRTC] MediaStreamTack audio volume too low
Summary: REGRESSION(Safari 15 - iOS15): [WebRTC] MediaStreamTack audio volume too low
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebRTC (show other bugs)
Version: Other
Hardware: iPhone / iPad Other
: P1 Major
Assignee: youenn fablet
URL:
Keywords: InRadar
: 231421 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-09-28 11:01 PDT by Les
Modified: 2021-12-03 17:39 PST (History)
59 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Les 2021-09-28 11:01:22 PDT
The audio in our web application’s WebRTC sessions is barely audible for users using Safari 15.This is not the case for previous Safari/iOS versions. Adjusting the volume in the web application and on the physical device has no effect. 

While searching for a solution, we found that the same issue exists for iOS15 users that join FaceTime calls via facetime.apple.com with Safari. We encountered this issue with the following steps (Users A and B are both using iOS15 ): 

- User A chooses “Create Link” from the FaceTime app
- User A shares the link with User B via SMS
- User B copies the facetime.apple.com link into Safari and ignores any prompt to use the FaceTime app
- User B should be able to hear User A clearly but the audio is very low

We’ve tried a number of workarounds with no luck:
- Establish a new audio connection after the initial to reset the volume
- Enabling autoGainControl
- Manually setting the volume constraint
- Triggering the audio by playing a sound prior to the WebRTC session
Comment 1 Matt 2021-09-28 11:53:57 PDT
Using the above test from Les in my case:


User B was NO sound, until they turned on the video, then User B had low sound. User A (on app) could hear User B fine.
Comment 2 rychouwei 2021-09-29 03:27:22 PDT
I have same issue.

remote stream volume on iOS 15 Safari is obviously lower than iOS 14.
Comment 3 Kevin Neal 2021-09-29 09:17:11 PDT
Thank you for filing. The appropriate engineers have been notified.
Comment 4 Radar WebKit Bug Importer 2021-09-29 09:17:21 PDT
<rdar://problem/83673859>
Comment 5 Phong Le 2021-09-29 09:26:39 PDT
Although, audio stream is played on bottom speaker, but the volume is very low
Comment 6 Mike Olson 2021-10-01 16:18:11 PDT
Hi Kevin,

Thanks for the Radar issue.

I'm not sure whether this is possible, but Les and I (we both work for the same company) would love to see this issue imported into OpenRadar or some other community-visible tool if that's convenient. I'm happy to authorize disclose of any details of the original report, in case that's necessary.
Comment 7 Eliel Cohen 2021-10-03 06:18:15 PDT
Hi Everyone,

Where I work we also suffer from this, therefore I have been investigating on my side this issue, by the way it's not that the audio volume is low, but that the audio output is the earpiece and not the speaker anymore to my opinion.

Now I have got some interesting finding that could guide Apple engineers in solving this, basically I've found out that if I open a new tab (with some audio tag inside, but it could be not mandatory), as long as the new tab is on a different domain, then it will put back the audio back to the speaker at normal volume, and going back to the tab where the Webrtc call happens will not reproduce the low volume/earpiece output issue.

Please note, that using an iframe, won't solve it, and using a same domain url for the new tab, won't also solve it.

Other finding, using Chrome application (which relies of course on WKWebView) will reproduce the issue, but there, simply going to the tab view will solve the audio issue, and we can then go back to the tab where the Webrtc call takes place.

At last, please note that sometime, these two solutions can deliver a mix solution, meaning that some rare time, it did create a state where the audio will go through the earpiece (low volume) for half a second, then through the speaker for half a sec, and so on continuously...

Hope my findings will help someone :)

Thanks,

Eliel
Comment 8 Steve Mieskoski 2021-10-05 12:12:45 PDT
Hi everyone,

I am also seeing this issue with iOS15. Our QA people went through the various audio settings to see if any of them would have an effect, but none did.
Comment 9 Sherwin Sim 2021-10-06 07:45:56 PDT
Just want to add that Bluejeans/Verizon is also seeing this issue

We've tried a couple different workarounds as suggested in other threads and we cannot seem to get it to work
Comment 10 Anna Vasilko 2021-10-08 16:42:46 PDT
We @Twilio received multiple reports of this iOS15 issue as well and are able to reproduce internally. Most of the end users perceive this as a "low volume issue" , when in reality it seems that in iOS15 audio is routed into earpiece audio output by default instead of speaker.
Comment 11 Mina 2021-10-11 23:56:20 PDT
We are having the same issue too, in iOS15 the audio seems to be routed to the earpiece audio instead of the speaker, on the other hand iOS14 works properly
Comment 12 Krieger 2021-10-12 01:58:11 PDT
*** Bug 231421 has been marked as a duplicate of this bug. ***
Comment 13 youenn fablet 2021-10-12 10:53:33 PDT
Have any of you tried the latest iOS 15 beta?
Comment 14 Mike Olson 2021-10-12 11:19:29 PDT
We tried 15.1 beta 3 and 15.0.2, the problem wasn't fixed in either.
Comment 15 neo 2021-10-13 03:11:09 PDT
do not use media element (audio or video)
for play remote audio stream use audio context destination. 
this work for me.
Comment 16 Phong Le 2021-10-13 05:04:51 PDT
Could you guide about how to use AudioContext to play this remote stream? I researched and when using AudioContext to play, we must attach with an audio element. Thanks
Comment 17 Phong Le 2021-10-13 05:06:17 PDT
(In reply to neo from comment #15)
> do not use media element (audio or video)
> for play remote audio stream use audio context destination. 
> this work for me.

Could you guide about how to use AudioContext to play this remote stream? I researched and when using AudioContext to play, we must attach with an audio element. Thanks
Comment 18 neo 2021-10-13 18:42:36 PDT
(In reply to Phong Le from comment #16)
> Could you guide about how to use AudioContext to play this remote stream? I
> researched and when using AudioContext to play, we must attach with an audio
> element. Thanks

i tested iOS 15. (wkWebview)

// audio stream example
 function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
    const context: AudioContext = window.AudioContext || window.webkitAudioContext;
    const audioNode = context.createMediaStreamSource(remoteAudioStream);
    const gainNode: GainNode = context.createGain();
    // some device volume too low ex) iPad
    gainNode.gain.value = gain;
    audioNode.connect(gainNode);
    gainNode.connect(context.destination);
  } 

and i'm not append video(with audio) element to document body. 
i use canvas.
Comment 19 Brendan Del Rosario 2021-10-15 13:56:59 PDT
(In reply to neo from comment #18)
> (In reply to Phong Le from comment #16)
> > Could you guide about how to use AudioContext to play this remote stream? I
> > researched and when using AudioContext to play, we must attach with an audio
> > element. Thanks
> 
> i tested iOS 15. (wkWebview)
> 
> // audio stream example
>  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
>     const context: AudioContext = window.AudioContext ||
> window.webkitAudioContext;
>     const audioNode = context.createMediaStreamSource(remoteAudioStream);
>     const gainNode: GainNode = context.createGain();
>     // some device volume too low ex) iPad
>     gainNode.gain.value = gain;
>     audioNode.connect(gainNode);
>     gainNode.connect(context.destination);
>   } 
> 
> and i'm not append video(with audio) element to document body. 
> i use canvas.

This workaround allowed us(OP/Les, Mike & Brendan) to be able to hear the remote audio at an appropriate level. We set our gain value to 10 for now and will tweak as needed (increasing too much can cause clipping). The quality of audio is slightly lower than that of iOS 14 but for the time being it is a workaround that gets us closer to previous functionality. Thank you very much for posting this!
Comment 20 Phong Le 2021-10-15 16:37:28 PDT
(In reply to neo from comment #18)
> (In reply to Phong Le from comment #16)
> > Could you guide about how to use AudioContext to play this remote stream? I
> > researched and when using AudioContext to play, we must attach with an audio
> > element. Thanks
> 
> i tested iOS 15. (wkWebview)
> 
> // audio stream example
>  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
>     const context: AudioContext = window.AudioContext ||
> window.webkitAudioContext;
>     const audioNode = context.createMediaStreamSource(remoteAudioStream);
>     const gainNode: GainNode = context.createGain();
>     // some device volume too low ex) iPad
>     gainNode.gain.value = gain;
>     audioNode.connect(gainNode);
>     gainNode.connect(context.destination);
>   } 
> 
> and i'm not append video(with audio) element to document body. 
> i use canvas.

Wow, it works :) Thanks for sharing. Before, I tested this one on MacOS Safari but not work. Only work on iOS device :). I set gain 4 to iPhone and 2 to iPad.  The <audio> and <video> tag (play file by url not remote stream) is still very low volume
Comment 21 neo 2021-10-17 19:59:34 PDT
(In reply to Phong Le from comment #20)
> (In reply to neo from comment #18)
> > (In reply to Phong Le from comment #16)
> > > Could you guide about how to use AudioContext to play this remote stream? I
> > > researched and when using AudioContext to play, we must attach with an audio
> > > element. Thanks
> > 
> > i tested iOS 15. (wkWebview)
> > 
> > // audio stream example
> >  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
> >     const context: AudioContext = window.AudioContext ||
> > window.webkitAudioContext;
> >     const audioNode = context.createMediaStreamSource(remoteAudioStream);
> >     const gainNode: GainNode = context.createGain();
> >     // some device volume too low ex) iPad
> >     gainNode.gain.value = gain;
> >     audioNode.connect(gainNode);
> >     gainNode.connect(context.destination);
> >   } 
> > 
> > and i'm not append video(with audio) element to document body. 
> > i use canvas.
> 
> Wow, it works :) Thanks for sharing. Before, I tested this one on MacOS
> Safari but not work. Only work on iOS device :). I set gain 4 to iPhone and
> 2 to iPad.  The <audio> and <video> tag (play file by url not remote stream)
> is still very low volume

still very low volume <== it'll be ok if use audio context for playing audio file.
Comment 22 neo 2021-10-17 20:07:59 PDT
does anyone knsow about this issue.
https://bugs.webkit.org/show_bug.cgi?id=231733
Comment 23 Phong Le 2021-10-19 23:25:53 PDT
(In reply to neo from comment #21)
> (In reply to Phong Le from comment #20)
> > (In reply to neo from comment #18)
> > > (In reply to Phong Le from comment #16)
> > > > Could you guide about how to use AudioContext to play this remote stream? I
> > > > researched and when using AudioContext to play, we must attach with an audio
> > > > element. Thanks
> > > 
> > > i tested iOS 15. (wkWebview)
> > > 
> > > // audio stream example
> > >  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
> > >     const context: AudioContext = window.AudioContext ||
> > > window.webkitAudioContext;
> > >     const audioNode = context.createMediaStreamSource(remoteAudioStream);
> > >     const gainNode: GainNode = context.createGain();
> > >     // some device volume too low ex) iPad
> > >     gainNode.gain.value = gain;
> > >     audioNode.connect(gainNode);
> > >     gainNode.connect(context.destination);
> > >   } 
> > > 
> > > and i'm not append video(with audio) element to document body. 
> > > i use canvas.
> > 
> > Wow, it works :) Thanks for sharing. Before, I tested this one on MacOS
> > Safari but not work. Only work on iOS device :). I set gain 4 to iPhone and
> > 2 to iPad.  The <audio> and <video> tag (play file by url not remote stream)
> > is still very low volume
> 
> still very low volume <== it'll be ok if use audio context for playing audio
> file.

No. (In reply to neo from comment #21)
> (In reply to Phong Le from comment #20)
> > (In reply to neo from comment #18)
> > > (In reply to Phong Le from comment #16)
> > > > Could you guide about how to use AudioContext to play this remote stream? I
> > > > researched and when using AudioContext to play, we must attach with an audio
> > > > element. Thanks
> > > 
> > > i tested iOS 15. (wkWebview)
> > > 
> > > // audio stream example
> > >  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
> > >     const context: AudioContext = window.AudioContext ||
> > > window.webkitAudioContext;
> > >     const audioNode = context.createMediaStreamSource(remoteAudioStream);
> > >     const gainNode: GainNode = context.createGain();
> > >     // some device volume too low ex) iPad
> > >     gainNode.gain.value = gain;
> > >     audioNode.connect(gainNode);
> > >     gainNode.connect(context.destination);
> > >   } 
> > > 
> > > and i'm not append video(with audio) element to document body. 
> > > i use canvas.
> > 
> > Wow, it works :) Thanks for sharing. Before, I tested this one on MacOS
> > Safari but not work. Only work on iOS device :). I set gain 4 to iPhone and
> > 2 to iPad.  The <audio> and <video> tag (play file by url not remote stream)
> > is still very low volume
> 
> still very low volume <== it'll be ok if use audio context for playing audio
> file.

Yup. But I need to use media element tag to play. However, createMediaElementSource on ios safari hadn't worked for long time
Comment 24 neo 2021-10-19 23:55:36 PDT
> 
> Yup. But I need to use media element tag to play. However,
> createMediaElementSource on ios safari hadn't worked for long time

hi
we no need to use createMediaElementSource for playing audio file.
how about use decodeAudioData.


window.onload = function(){
    var context = new AudioContext() || new webkitAudioContext(),
        request = new XMLHttpRequest();
    
    request.open("GET", "audio_file.mp3", true);
    request.responseType = "arraybuffer";
    request.onload = function(){
        context.decodeAudioData(request.response, onDecoded);
    }
    
    function onDecoded(buffer){
        var bufferSource = context.createBufferSource();
        bufferSource.buffer = buffer;
        bufferSource.connect(context.destination);
        bufferSource.start();
    }
    
    request.send();
};
Comment 25 Paul 2021-10-21 12:06:21 PDT
We are running into this same issue - our website has been working for 3 years on all major browsers except IE. We do need to play audio at the same time as recording. We are beginning to get complaints.
Comment 26 Paul 2021-10-23 07:54:41 PDT
The hack of adding the gain node works for us - sort of. Safari 15 on MacOS doesn't have the problem so I look at the User Agent and only apply the hack if the client is Safari 15 and mobile. That keeps from breaking browsers that don't have this bug.

However, I can't figure out how to distinguish between iPad and MacbookPro, so iPad is still broken. That's better than nothing, though, since iphones outnumber ipads in our user base.

BTW, we only have a few test devices but adding a gain of 10 seems to be approximately right.

The other thing we're worried about is that if this gets fixed then all of the sudden we'll be blasting iphone users out.
Comment 27 Phong Le 2021-10-23 19:11:13 PDT
(In reply to Paul from comment #26)
> The hack of adding the gain node works for us - sort of. Safari 15 on MacOS
> doesn't have the problem so I look at the User Agent and only apply the hack
> if the client is Safari 15 and mobile. That keeps from breaking browsers
> that don't have this bug.
> 
> However, I can't figure out how to distinguish between iPad and MacbookPro,
> so iPad is still broken. That's better than nothing, though, since iphones
> outnumber ipads in our user base.
> 
> BTW, we only have a few test devices but adding a gain of 10 seems to be
> approximately right.
> 
> The other thing we're worried about is that if this gets fixed then all of
> the sudden we'll be blasting iphone users out.

More, if the user plug a headset and we still keep gain 10. Then, it would be very very high volume :(. We cannot do anything here because we cannot detect when users plug their headset. We must wait for fixing this issue
Comment 28 Varun D 2021-10-24 22:03:28 PDT
(In reply to Brendan Del Rosario from comment #19)
> (In reply to neo from comment #18)
> > (In reply to Phong Le from comment #16)
> > > Could you guide about how to use AudioContext to play this remote stream? I
> > > researched and when using AudioContext to play, we must attach with an audio
> > > element. Thanks
> > 
> > i tested iOS 15. (wkWebview)
> > 
> > // audio stream example
> >  function connectToSpeaker(remoteAudioStream: MediaStream, gain: number) {
> >     const context: AudioContext = window.AudioContext ||
> > window.webkitAudioContext;
> >     const audioNode = context.createMediaStreamSource(remoteAudioStream);
> >     const gainNode: GainNode = context.createGain();
> >     // some device volume too low ex) iPad
> >     gainNode.gain.value = gain;
> >     audioNode.connect(gainNode);
> >     gainNode.connect(context.destination);
> >   } 
> > 
> > and i'm not append video(with audio) element to document body. 
> > i use canvas.
> 
> This workaround allowed us(OP/Les, Mike & Brendan) to be able to hear the
> remote audio at an appropriate level. We set our gain value to 10 for now
> and will tweak as needed (increasing too much can cause clipping). The
> quality of audio is slightly lower than that of iOS 14 but for the time
> being it is a workaround that gets us closer to previous functionality.
> Thank you very much for posting this!

Can this work if we have many peer's audio stream coming in?
Also, should the first line of this function be
const context = new (window.AudioContext || window.webkitAudioContext)();
Otherwise, createMediaStreamsource fails.
Comment 29 Pablo Fuente 2021-10-26 03:53:41 PDT
Hi,

We at @openvidu are also experiencing this problem. From iOS 15, when using Safari audio is coming out through both the earpiece and the main speaker, but the total output volume is reduced about 1/2 to 2/3, comparing it to Safari in iOS 14.
I can provide some more information: if the user stops the camera clicking on the navigation bar "Stop Using Camera" button, then the receiving audio gets automatically back to a normal level.
Comment 30 Phong Le 2021-10-27 20:47:00 PDT
@@ A month from reported day and nobody is assigned to investigate to fix. Why? How an super big company as Apple has lack of developers to resolve this one
Comment 31 Luca Simonetti 2021-10-28 06:59:16 PDT
we're experiencing the same issue with a cordova app. Exactly same behavior. I sure hope this is being taken care of.
Comment 32 youenn fablet 2021-10-28 07:00:43 PDT
This is being worked on but it is not clear yet whether changes in WebKit will be needed.
Comment 33 Phong Le 2021-10-28 22:40:40 PDT
Cool. I hope that it's fixed asap :(. Many people are influenced seriously. We don't have anyway to make it workound now(In reply to youenn fablet from comment #32)
> This is being worked on but it is not clear yet whether changes in WebKit
> will be needed.

Cool. I hope that it's fixed asap :(. Many people are influenced seriously. We don't have anyway to make it workound now. Using AudioContext is bad solution. If the user plug a headset and we still keep gain 10. Then, it would be very very high volume :(. We cannot do anything here because we cannot detect when users plug their headset. We must wait for fixing this issue
Comment 34 hrickardsaw 2021-11-05 08:18:52 PDT
Any update here? This has a *very* noticeable user impact and, like Phong mentioned, there is no viable workaround as increasing gain causes the opposite problem for users with headsets. Given the impact, updates on this ticket, rather than just on the internal Radar issue, would be very much appreciated.
Comment 35 Mina 2021-11-05 08:31:14 PDT
I completely agree with you, the issue is causing a noticeable bad impact on our end users too.
I really appreciate any updates here.
Comment 36 bdesai 2021-11-05 08:33:26 PDT
We are facing the same problem as well. we are highly relied on webRTC for our workflow. Would be great to have some progress on this one.
Comment 37 Luca Simonetti 2021-11-05 08:33:41 PDT
Same here, we are currently suggesting users to use our app with headphones. 
And obviously it's not a solution nor a workaround but a real limitation.
Comment 38 seanoshea 2021-11-05 08:41:42 PDT
Pinging on this here too to see if this can get prioritized. We're running into this on a daily basis.
Comment 39 ivalencia 2021-11-05 08:56:36 PDT
We are being hit by this bug as well, a quick turnaround will be highly appreciated. Thanks.
Comment 40 Natch 2021-11-05 11:58:23 PDT
Completely agree with Luca - switching to headphones is not a plausible solution.
Would really appreciate to see this one get resolved soon.
Comment 41 Octavio Pinto 2021-11-05 12:01:54 PDT
Any updates, yet? Really impacting user experience.
Comment 42 JoshSauder 2021-11-05 13:50:25 PDT
We're also frequently experiencing this same issue. Would also appreciate an update on this issue.
Comment 43 melvin bos 2021-11-05 18:27:41 PDT
This is greatly impacting end user experience and please patch this soon. thanks in advance.
Comment 44 Freet30 2021-11-05 20:21:34 PDT
This need to be patch.  Anyone tried new beta?
Comment 45 Dana Chandler 2021-11-06 03:19:03 PDT
I agree with previous comments.  The is seriously affecting user experience and would be nice if this was prioritized.  Any updates you could provide would be greatly appreciated.
Comment 46 Andrei Rebegea 2021-11-08 01:42:00 PST
Please fix this regression. It impacts our users.
Comment 47 neo 2021-11-08 08:49:44 PST
iOS 15.1 low sound issue.

this works for me 
1. create new audio context (before getUserMedia. important!)
2. getUserMedia
3. use audio context to play remote audio and sound
hope this helps
Comment 48 Mina 2021-11-08 13:17:05 PST
I think the issue is related to webkit not safari, I've tested the same on Firefox on iOS which is webkit based and the issue occurred too.
Comment 49 Freet30 2021-11-09 00:56:55 PST
Sometimes plug in headphones and unplug them the audio goes to normal.
Comment 50 Phong Le 2021-11-09 05:00:56 PST
This is a critical issue. Please fix asap
Comment 51 Phong Le 2021-11-10 04:18:00 PST
At https://bugs.webkit.org/show_bug.cgi?id=232873, youenn fablet updated WebRTC lib. Does anyone know how to check this issue work on this patch?
Comment 52 Yazz 2021-11-14 09:26:40 PST
Wondering if there is any progress in this issue, we are recommending users to not use IPAD/IPHONE currently, which is not so good :(
Comment 53 Phong Le 2021-11-14 10:13:58 PST
(In reply to Yazz from comment #52)
> Wondering if there is any progress in this issue, we are recommending users
> to not use IPAD/IPHONE currently, which is not so good :(

Yeap, they move to use Android and Chrome on Windows becauase this one
Comment 54 mattwindwer 2021-11-14 10:15:42 PST
Waiting to hear as well. Hoping this will be fixed for iOS 15.2. Does anybody know?
Comment 55 Zach Rattner 2021-11-14 11:39:25 PST
If anyone on this thread is able to reliably reproduce this bug on iOS 15.1, you could try out the iOS 15.2 beta and see if the issue resolved: 

https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15_2-release-notes

I know I, for one, would appreciate it if anyone could do this and report back here. Probably others would too.

My team's attempts at reproducing on iOS 15.1 were intermittent and I haven't had a chance to chase down exactly why yet. Will share if we figure anything out.
Comment 56 Zach Rattner 2021-11-14 11:39:50 PST
If anyone on this thread is able to reliably reproduce this bug on iOS 15.1, you could try out the iOS 15.2 beta and see if the issue resolved: 

https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15_2-release-notes

I know I, for one, would appreciate it if anyone could do this and report back here. Probably others would too.

My team's attempts at reproducing on iOS 15.1 were intermittent and I haven't had a chance to chase down exactly why yet. Will share if we figure anything out.
Comment 57 Marcus G 2021-11-15 14:47:46 PST
(In reply to Zach Rattner from comment #56)
> If anyone on this thread is able to reliably reproduce this bug on iOS 15.1,
> you could try out the iOS 15.2 beta and see if the issue resolved: 
> 
> https://developer.apple.com/documentation/ios-ipados-release-notes/ios-
> ipados-15_2-release-notes
> 
> I know I, for one, would appreciate it if anyone could do this and report
> back here. Probably others would too.
> 
> My team's attempts at reproducing on iOS 15.1 were intermittent and I
> haven't had a chance to chase down exactly why yet. Will share if we figure
> anything out.

I have tried it on an iPhone 10XS with 5.2 beta 2 and it has not been fixed.
The audio is still low with our web app.
Comment 58 Marcus G 2021-11-15 14:49:00 PST
(In reply to Marcus G from comment #57)
> (In reply to Zach Rattner from comment #56)
> > If anyone on this thread is able to reliably reproduce this bug on iOS 15.1,
> > you could try out the iOS 15.2 beta and see if the issue resolved: 
> > 
> > https://developer.apple.com/documentation/ios-ipados-release-notes/ios-
> > ipados-15_2-release-notes
> > 
> > I know I, for one, would appreciate it if anyone could do this and report
> > back here. Probably others would too.
> > 
> > My team's attempts at reproducing on iOS 15.1 were intermittent and I
> > haven't had a chance to chase down exactly why yet. Will share if we figure
> > anything out.
> 
> I have tried it on an iPhone 10XS with 5.2 beta 2 and it has not been fixed.
> The audio is still low with our web app.

Sorry 15.2 beta 2.
Comment 59 cxdevteam@outlook.com 2021-11-16 00:19:24 PST
the issue is not fixed on 15.2 beta and 15.2beta2 on devices below,
iphone 12 pro
iphone 12 
iphone 7
ipad gen 8
Comment 60 Phong Le 2021-11-16 20:07:53 PST
(In reply to cxdevteam@outlook.com from comment #59)
> the issue is not fixed on 15.2 beta and 15.2beta2 on devices below,
> iphone 12 pro
> iphone 12 
> iphone 7
> ipad gen 8

Thank for this announcement. This is actually critical issue for web based call applications. Hope that Apple will fix it asap :(
Comment 61 Marcus G 2021-11-17 09:49:31 PST
Bug still in iOS 15.2 public beta 3

Just checked the new released 15.2 public beta 3 on an iPhone XS and the issue has not been fixed.  Audio is still low on connection to our audio web app. Opening an additional browser window while the audio is running in the original window brings the audio back to a normal level. User can then go back to the original browser window, but most users are not going to figure this out.
Comment 62 Paul 2021-11-18 06:56:02 PST
(In reply to Zach Rattner from comment #56)
> My team's attempts at reproducing on iOS 15.1 were intermittent and I
> haven't had a chance to chase down exactly why yet. Will share if we figure
> anything out.

Zach, it happens every time in our website. If you'd like to see it contact me and we can give you an account.
Comment 63 Johnny V 2021-11-20 10:22:15 PST
To reproduce the issue all you have to do is go here on an iPhone/Pad https://webrtc.github.io/samples/src/content/devices/input-output/

When speaking into the microphone of an iPhone it is clear the sound is coming out of the headset instead of the speaker.
Comment 64 Mina 2021-11-21 08:29:32 PST
Hi Guys,

My colleges did something like 

mediaStream.getAudioTracks()[0].enabled = false;
setTimeout(() => {						        mediaStream.getAudioTracks()[0].enabled = true;
}, 1500);

they reported hearing echo sound which was never happening before, can anybody help verifying it on your end too?

We tested iOS 15.1 and 15.0
Comment 65 Teodor 2021-11-24 06:57:44 PST
We tried overriding audio route (kAudioSessionOverrideAudioRoute_Speaker) while WebRTC audio was being played through earpiece – we are seeing this issue in WKWebView as well as Safari – and the result is that the entire WebRTC call crashes.

If anybody has any stable (reproducible) workarounds, even if they rely on executing native code, please share. It seems we won't see a fix in 15.3, and we are looking at one more month and a half with this bug, and that's if we are lucky.
Comment 66 Marcus G 2021-11-24 07:28:50 PST
(In reply to Johnny V from comment #63)
> To reproduce the issue all you have to do is go here on an iPhone/Pad
> https://webrtc.github.io/samples/src/content/devices/input-output/
> 
> When speaking into the microphone of an iPhone it is clear the sound is
> coming out of the headset instead of the speaker.

We have the same low audio issue using airPods and other bluetooth devices (car audio) as well. So it seems to go beyond a headset/speaker routing issue.
Comment 67 Phong Le 2021-11-24 19:37:07 PST
(In reply to Marcus G from comment #66)
> (In reply to Johnny V from comment #63)
> > To reproduce the issue all you have to do is go here on an iPhone/Pad
> > https://webrtc.github.io/samples/src/content/devices/input-output/
> > 
> > When speaking into the microphone of an iPhone it is clear the sound is
> > coming out of the headset instead of the speaker.
> 
> We have the same low audio issue using airPods and other bluetooth devices
> (car audio) as well. So it seems to go beyond a headset/speaker routing
> issue.

@@ Super critical issue. :(. Apple should be aware of fixing this one asap
Comment 68 Teodor 2021-11-26 19:42:18 PST
Can anybody confirm that this issue is NOT reproducible on iPhone 8 (model number MQ6W2LL/A) with iOS 15.1?

I could join a call with it 10+ times in a row and sound was coming out of the speaker every time. Comment 59 mentions iPhone 7, so iPhone 8 may be the only exception.

If this is the case, then gain workaround must not be applied on iPhone 8. Media query to detect it is "only screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)".
Comment 69 Varun D 2021-11-28 08:57:04 PST
I tried a solution mentioned the last comment by David on this thread 
https://bugs.webkit.org/show_bug.cgi?id=218012
It partially improved the volume.

However, as soon as Mic permission was granted - peer volume dropped to very poor.
Comment 70 Varun D 2021-11-28 08:57:18 PST
I tried a solution mentioned the last comment by David on this thread 
https://bugs.webkit.org/show_bug.cgi?id=218012
It partially improved the volume.

However, as soon as Mic permission was granted - peer volume dropped to very poor.
Comment 71 Jacob 2021-11-29 12:54:55 PST
We are experiencing this on our video chat app on ios 15.1.1 but not ios 15.0.1
Comment 72 Johnny V 2021-11-30 10:56:51 PST
I wanted to let everyone know that new evidence suggests that WebRTC sessions in iOS15.1 with Stereo Opus Audio come in at full volume whereas Mono Opus Audio does not.

https://meeting.anycompany.xyz/ can be used to test the Mono Audio
https://demo.millicast.com/ can be used to test the Stereo Audio

It is possible that some other factor is in play here.  Just wanted to update everyone so get more eyes on this.
Comment 73 Varun D 2021-12-02 01:12:17 PST
(In reply to Johnny V from comment #72)
> I wanted to let everyone know that new evidence suggests that WebRTC
> sessions in iOS15.1 with Stereo Opus Audio come in at full volume whereas
> Mono Opus Audio does not.
> 
> https://meeting.anycompany.xyz/ can be used to test the Mono Audio
> https://demo.millicast.com/ can be used to test the Stereo Audio
> 
> It is possible that some other factor is in play here.  Just wanted to
> update everyone so get more eyes on this.

When viewing millicast video, was mic permission asked & granted? 
when mic permission is granted - that is when volume drops on iphone.
Comment 74 Johnny V 2021-12-02 05:43:30 PST
(In reply to Varun D from comment #73)
> (In reply to Johnny V from comment #72)
> > I wanted to let everyone know that new evidence suggests that WebRTC
> > sessions in iOS15.1 with Stereo Opus Audio come in at full volume whereas
> > Mono Opus Audio does not.
> > 
> > https://meeting.anycompany.xyz/ can be used to test the Mono Audio
> > https://demo.millicast.com/ can be used to test the Stereo Audio
> > 
> > It is possible that some other factor is in play here.  Just wanted to
> > update everyone so get more eyes on this.
> 
> When viewing millicast video, was mic permission asked & granted? 
> when mic permission is granted - that is when volume drops on iphone.

Do you have a test URL where I can try this?  The https://meeting.anycompany.xyz/ will not let me in the room without enabling Camera and Microphone on iOS 15.1
Comment 75 Varun D 2021-12-02 09:26:16 PST
(In reply to Varun D from comment #73)
> (In reply to Johnny V from comment #72)
> > I wanted to let everyone know that new evidence suggests that WebRTC
> > sessions in iOS15.1 with Stereo Opus Audio come in at full volume whereas
> > Mono Opus Audio does not.
> > 
> > https://meeting.anycompany.xyz/ can be used to test the Mono Audio
> > https://demo.millicast.com/ can be used to test the Stereo Audio
> > 
> > It is possible that some other factor is in play here.  Just wanted to
> > update everyone so get more eyes on this.
> 
> When viewing millicast video, was mic permission asked & granted? 
> when mic permission is granted - that is when volume drops on iphone.

I have tried this working on a WebRTC solution for client - cant share the URL.
More details here https://bugs.webkit.org/show_bug.cgi?id=218012'

As I understand, for viewing milicast video - mic permission is not needed - and that is making the difference.
Comment 76 mattwindwer 2021-12-03 10:39:28 PST
Twilio has indicated that this bug is resolved in iOS 15.2 beta 4:
https://github.com/twilio/twilio-video.js/issues/1586#issuecomment-985094190

Has anybody else confirmed?
Comment 77 Marcus G 2021-12-03 17:39:19 PST
(In reply to mattwindwer from comment #76)
> Twilio has indicated that this bug is resolved in iOS 15.2 beta 4:
> https://github.com/twilio/twilio-video.js/issues/1586#issuecomment-985094190
> 
> Has anybody else confirmed?

On an iPhone XS this is NOT resolved for the speakers with iOS 15.2 beta 4. There is some progress though.

My initial testing with an iPhone XS and iOS 15.2 beta 4 is that volume is still very LOW (unusable) with the SPEAKERS, but... with bluetooth airPods or bluetooth car audio or wired apple earphones the audio is at a normal level again and sounds good.

To get normal level with the speakers, if you open another browser window to some other web site after you have opened the audio site, then the speaker level reverts to normal volume for the duration of the session.

So, definitely progress with the 1 phone I have tested with but not resolved. I have an iPhone 7 that I will update and test with as well.

All testing was done with Safari.