Issue metadata
Sign in to add a comment
|
AudioWorkletNode seems to silence all audio rendering after being disposed
Reported by
yotamm...@gmail.com,
Yesterday
(32 hours ago)
|
||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 Steps to reproduce the problem: 1. Go to: https://wo8w4rmv58.codesandbox.io/ 2. Click the button labeled "osc!". This button plays an OscillatorNode for a moment 3. Click the button labeled "worklet!". This button plays an OscillatorNode through an AudioWorkletNode (specifically the BitCrusher example from the spec website) 4. When the second sample is done playing, click "osc!" again. 5. Notice there is no sound in either of the buttons any more. The entire page is silent. What is the expected behavior? After the AudioWorkletNode is done playing, the rest of the audio should be allowed to play normally. What went wrong? The AudioWorkletNode seems to completely silence the page after it's source node is garbage collected. The page does is not able to make sound again until the tab is refreshed. Did this work before? N/A Does this work in other browsers? N/A Chrome version: 71.0.3578.98 Channel: stable OS Version: OS X 10.13.6 Flash Version: Code here: https://codesandbox.io/s/wo8w4rmv58
,
Today
(22 hours ago)
Able to reproduce the issue on chrome version 71.0.3578.98 and latest chrome 73.0.3679.0 using Windows 10, Mac 10.14.0, Ubuntu 17.10. Below is the bisect information for same. Bisect Info: ================ Good build: 67.0.3371.0 Bad build: 67.0.3372.0 You are probably looking for a change made after 543505 (known good), but no later than 543506 (first known bad). CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/38c6a5e503d885f1ebc16461749025e3b81a40df..9d4a34cadf1b7d85f4ad0b709374aaaf59325a8d Change-Id: I82407ed0a9fe84c5012333af8af27f4dd08d29b8 Reviewed-on: https://chromium-review.googlesource.com/953970 Raymond Toy:Please confirm the issue and help in re-assigning if it is not related to your change. Thanks..!
,
Today
(11 hours ago)
,
Today
(11 hours ago)
Thanks for filing the issue. I'll investigate.
,
Today
(8 hours ago)
phanindra.mandapaka@ Thanks so much for bisecting. Were you able to here the sound playing correctly at 67.0.3371.0? Just trying to clarify the definition of "Good build" and "Bad build".
,
Today
(7 hours ago)
I figured out what is happening: The example code from the spec is not really complete. - When the input to the worklet node stops, the channel configuration in the path changes. - So the code actually need to tap "input" to figure out the correct channel count. - When the graph dynamically changes, input[channel][i] can be NaN when then "i" is based on the output channel. - When you have any NaN value in the output stream, it will become silent no matter what else you have in the graph. Here's the fixed version: https://codesandbox.io/s/q79lj30wz6 (I believe this is my mistake in the spec example code) Currently there's no easy way to catch NaN from AWGS. You can throw an error by using onprocessorerror: https://github.com/GoogleChromeLabs/web-audio-samples/blob/master/audio-worklet/basic/handling-errors/error-processor.js
,
Today
(6 hours ago)
> - When you have any NaN value in the output stream, it will become silent no matter what else you have in the graph. You can see the speaker icon on the tab is still playing when you don't hear nothing. That's a sign of NaN coming out of your output. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by swarnasree.mukkala@chromium.org
, Yesterday (26 hours ago)