[Webkit-unassigned] [Bug 154538] New: Web Audio restores wrong sample rate and sounds distorted

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Feb 22 08:34:26 PST 2016


https://bugs.webkit.org/show_bug.cgi?id=154538

            Bug ID: 154538
           Summary: Web Audio restores wrong sample rate and sounds
                    distorted
    Classification: Unclassified
           Product: WebKit
           Version: Safari 9
          Hardware: iOS
                OS: iOS 9.2
            Status: NEW
          Severity: Major
          Priority: P2
         Component: Web Audio
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: ashley at scirra.com

Repro URL: https://www.scirra.com/labs/bugs/iosdistort/

Steps to reproduce:
1. Visit the URL.
2. Observe the displayed audioContext.sampleRate. It should be 44100 Hz.
3. Press the button. A sound should play, and a regular sound starts playing.
4. Kill Safari (double press-and-hold home button, swipe away Safari from apps list)
5. Open Safari again
6. Safari restores the previous page
7. Press the button again
8. Observe sample rate and listen to audio quality

Observed result:
The audio quality is severely distorted and sounds terrible. The sample rate has also changed to 48000 Hz, which may be related.

Expected result:
Audio quality same as on first listen, and sample rate should probably stay at 44100 Hz.

This appears to be a device-specific issue. This does not reproduce on an iPad Air 2, but it does reproduce on an iPhone 4S, all running iOS 9.2.1.

This is causing significant problems for all Construct 2 content on iOS. See here: https://www.scirra.com/forum/ios-sound-problems-since-ios-9-2_t167412
According to user reports, it only happens on iPhones and not iPads, the webview is affected, and the problem is new as of iOS 9.2.

After the audio sounds distorted, closing the Safari tab and reopening it seems to restore the audio quality and the 44100 sample rate. However note this is not an option with Cordova apps. We have also found what seems to be a workaround we can apply from our engine: if on startup we create an AudioContext, immediately call close() on it, throw it away, then create a new AudioContext which we use for the rest of the app, it appears to work correctly. We will shortly be shipping this workaround for iOS devices, but this should be fixed as it affects all existing deployed web content.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160222/4ede09f5/attachment.html>


More information about the webkit-unassigned mailing list