Bug 189713
| Summary: | REGRESSION (iOS 12): AudioContext not playing through device speakers | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Neil Kinnish <hello> |
| Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED CONFIGURATION CHANGED | ||
| Severity: | Critical | CC: | alojz.milicevic, ben.browitt, eric.carlson, jer.noble, jordy, mikeblock, webkit-bug-importer, youennf |
| Priority: | P1 | Keywords: | InRadar |
| Version: | Other | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Neil Kinnish
There seems to be a few related issues that are new to iOS 12 (iOS 11 was not affected).
This is based on WebRTC, sending remote stream audio through AudioContext – previously working on iOS 11.
1. Without headphones and regardless of the mute button on the device, the audio does not play (does play with headphones).
2. Plugging and unplugging headphones and the audio stops working, have to refresh with headphones for it work again.
3. Enabling / Disabling a local audio track not connected to the AudioContext stops the remote audio playing in the AudioContext.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/44620811>
youenn fablet
Hi Neil, can you provide a test case?
Is it related to a remote audio track only or does it apply to a local getUserMedia track?
Mike Block
This may be unrelated but even in 11.4.1 I'm not hearing audio through the speakers on an iPad mini. My use case has a video playing on the web page while you are connected via WebRTC in a call. I think the AudioContext is not allowing mixing of audio sources between regular h.264/aac video playback and the remote streams coming in through the peer connections.
Volume for the h.264/aac video playback is erratic. Sometimes it's loud, then it drops, and then it just mutes completely. There's no apparent predictability to it.
Neil Kinnish
(In reply to youenn fablet from comment #2)
> Hi Neil, can you provide a test case?
> Is it related to a remote audio track only or does it apply to a local
> getUserMedia track?
Yes, sorry just need time to put a test case together
Neil Kinnish
(In reply to Mike Block from comment #3)
> This may be unrelated but even in 11.4.1 I'm not hearing audio through the
> speakers on an iPad mini. My use case has a video playing on the web page
> while you are connected via WebRTC in a call. I think the AudioContext is
> not allowing mixing of audio sources between regular h.264/aac video
> playback and the remote streams coming in through the peer connections.
>
> Volume for the h.264/aac video playback is erratic. Sometimes it's loud,
> then it drops, and then it just mutes completely. There's no apparent
> predictability to it.
I am using video / audio tags now and not relying on AudioContext. It is true though on iOS (devices at least) the volume does jump at points, this can happen when animations happen on a page, click, touch events.
Mike Block
That seems odd that animations and user interaction would cause the audio to jump in volume. The speaker output is also set to a call type audio rather than standard media. I know this because the AudioContext changes only if getUserMedia is called or remote audio streams are attached in the page.
Let me know if I should just open a separate issue to address this.
Ben
I'm mixing several audio tracks with AudioContext because iOS can only play a single audio track[1].
Tested with Safari on iOS 12.1 and Chrome 70 on Windows.
What works:
1. Safari sends audio to Chrome. Chrome can hear the audio.
2. Chrome start sending audio to Safari. Safari can hear the audio.
What's broken:
1. Chrome sends audio to Safari. Safari Can hear the audio.
2. Safari start sending audio to Chrome. Chrome can hear the audio but Safari can't hear.
Safari on Mac doesn't have this issue.
[1] https://bugs.webkit.org/show_bug.cgi?id=176282#c12
Ben
youenn, any workaround?
youenn fablet
(In reply to Ben from comment #8)
> youenn, any workaround?
youenn fablet
(In reply to youenn fablet from comment #9)
> (In reply to Ben from comment #8)
> > youenn, any workaround?
Hi Ben, would you be able to provide some repro case?
Ben
I'll try to create a repo case.
The key is that Safari starts in recvonly video track and later change to sendonly.
youenn fablet
Marking as configuration changed, a lot of things have changed since then.