Steps to reproduce:
1. Visit https://staging-connect.circleanywhere.com/public/webrtc-test/#ios-12-missing-audio in a desktop browser
2. Visit the same link on a device running iOS 11.4.1, notice that both peers receive audio from the other
3. Close up browser from step 1, then reopen to same page
4. Visit the same link on a device running iOS 12 beta 3, notice that the iOS device receives audio from the browser peer, but the browser does not receive audio from the iOS peer.
Another illustrative test:
1. Visit https://connect.circleanywhere.com/orientation/connectivity-check?stats-collection-length=100000 from an iOS 11.4.1 device
2. Log in with any Google account
3. Click 'Next' to start the connectivity test
4. Notice 'Audio bytes sent' under the 'Main room' heading shows audio data being sent from the iOS device (gathered from the getStats() method on the peer)
5. Repeat steps 1-3 from an iOS 12 beta 3 device
6. Notice 'Audio bytes sent' under the 'Main room' heading shows NO audio data being sent from the iOS device
Note that the test case has been moved to this location:
Also important: close up all browser windows between test runs -- the test case is very simple and doesn't handle page refreshes.
Note that this bug is still an issue on iOS Beta 4. WebRTC will be virtually unusable until it is fixed.
Is it working for MacOS using latest STP?
One difference that happened between iOS11.41. and iOS12 is that we disabled legacy APIs, for instance callback APIs are no longer supported.
It seems your example is using such legacy APIs.
Could you try to update your test?
@youenn, on further inspection, it's not even necessary to involve peer connections. The following test case is dead simple: getUserMedia request for audio/video, which is then placed into an unmuted video element. All mic input should be heard on the audio output of the device:
Tested as successfully working on desktop Chrome, Firefox, Opera, Safari Technology Preview, on mobile Chrome, Firefox, and Opera, and on an iPad Mini 3 and iPhone 6 both running iOS 11.4.1.
It fails to work on both the iPhone 6 and iPad Mini 3 running iOS 12 Beta 4.
Can you confirm?
@youenn, also, to answer your other question, after updating the legacy WebRTC API calls in my peer connection test case, I can confirm it works in both latest Safari Technology Preview and iOS 11.4.1, and does NOT work in iOS 12 Beta 4.
This is still an issue on iOS 12 Beta 5. The simple use cases I've provided work everywhere (including iOS 11.4.1) except for iOS Beta 12.
As it stands now, a major new feature introduced in iOS 11 is badly broken in iOS 12.
Chrome doesn't receive audio from Safari in the following demos:
iOS 11.4.1 = Good
iOS 12 Beta 4 = Bad
This is still an issue on iOS 12 Beta 6.
(In reply to Chad Phillips from comment #9)
> This is still an issue on iOS 12 Beta 6.
I tried both appr.tc and meetecho between a recent iOS build and Google Chrome on a Mac. In both cases, this works fine for me.
Chad, I am not sure what the issue you are encountering is.
For appr.tc, are you getting video but no audio?
I've confirmed this issue is resolved is iOS Beta 7 for both of my posted test cases, and it also works on appr.tc.
Seeing as my test cases haven't changed, my assumption is that it was fixed somewhere between Beta 6 and Beta 7.
Pretty sure we can close this issue now.
I believe there is a related issue in the public iOS 12 release.
@youenn fablet: is this just an issue for audiocontext?