Summary: | iPhone X GSM, XS/XS Max in Safari using webRTC is transmitting clicking sound | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | aman.khangura | ||||||
Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | mike.antonelli, simmkyu, webkit-bug-importer, youennf | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | Safari 13 | ||||||||
Hardware: | iPhone / iPad | ||||||||
OS: | iOS 13 | ||||||||
Attachments: |
|
Description
aman.khangura
2019-11-26 10:13:39 PST
Hi aman, Is there a way to get access to the repro case. You can directly send me instruction if you do not want to provide this information publicly. It would be interesting to identify whether the issue lies in capture, rendering or the peer connection pipeline. The audio too quiet is probably bug 208134. Created attachment 406144 [details]
iPhone XR in the WebRTC-based web application
Created attachment 406145 [details]
iPhone Xs in the AppRTC demo. Note that the noise starts to occur at 0:07, but it's much quiter than XR.
Problem: In the WebRTC-based web applications with AudioContext, peers can hear clicking noise from iPhone X devices. Repro steps in WebRTC-based web applications: 1. PeerA joins the session in iOS Safari on any iPhone X device. 2. PeerB joins the same session in any other browser and device. PeerB doesn't hear any clicking noise from PeerA. 3. PeerA creates an instance of AudioContext. 4. PeerB starts to hear the clicking noise from PeerA. Repro steps in the AppRTC demo (from WebRTC https://github.com/webrtc/apprtc): 1. PeerA opens https://appr.tc/ in iOS Safari on any iPhone X device. 2. PeerA enters a room name and joins the room. 3. PeerB opens https://appr.tc/ in any other browser and device. 4. PeerB joins the same room. 5. PeerA and PeerB can see and hear each other. PeerB won't hear any clicking noise because the AppRTC demo doesn't create an AudioContext instance (as of 2020-08-04). > Go to step 10 if the Web Inspector is already set up for iOS Safari. 6. PeerA enables “Web Inspector” under iOS Safari => Advanced settings 7. PeerA connects the iPhone X device to the macOS Safari 13. 8. PeerA opens the Advanced tab in the Safari Preferences and enables "Show Develop menu in menu bar." 9. PeerA chooses the AppRTC demo under the Develop menu. PeerA can use the Web Inspector on the AppRTC page running on the iOS Safari. 10. PeerA opens the Console tab in the Web Inspector and creates an instance of AudioContext. e.g. const audioContext = new (window.AudioContext || window.webkitAudioContext)(); 11. PeerB starts to hear the clicking noise from PeerA. Notes: - Tested on iPhone Xs (iOS 13.5.1) and iPhone XR (iOS 13.5). iPhone XR produces much louder noise. - The clicking noise continues even after closing the audio context. e.g. audioContext.close() - The clicking noise continues even after refreshing the page. In iOS Safari, you can refresh the page by tapping the refresh button at the URL bar. - The clicking noise disappears after opening the WebRTC-based application in a new tab. - The clicking noise disappears after muting the microphone but comes back after unmuting it. e.g. MediaStreamTrack.enabled = false Two attached files: - clipping-noise-from-iphone-xr.m4a: iPhone XR in the WebRTC-based web application - clipping-noise-from-iphone-xs.mov: iPhone Xs in the AppRTC demo. Note that the noise starts to occur at 0:07, but it's much quiter than XR. Hi Kyu, were you able to test the latest iOS 14 betas? Is it still reproducing there? Hi Youenn Fablet, I confirmed that the clicking sound doesn't occur anymore in iOS 14. In iOS 13, iPhone XR made a noticeable clicking noise when using the AudioContext API. In iOS 14, I couldn't hear that noise. Thank you, Kyu |