fix(desktop): keep UI sounds out of media controls - #4916
Open
nathan-thillairajah wants to merge 2 commits into
Open
fix(desktop): keep UI sounds out of media controls#4916nathan-thillairajah wants to merge 2 commits into
nathan-thillairajah wants to merge 2 commits into
Conversation
Play short notification cues through one-shot Web Audio sources so WebKit does not register resumable HTML media with macOS. Preserve sound previews with a small stoppable playback handle and cover caching, lifecycle, and retry behavior. Co-authored-by: npub1pgykmagdkjjhrrrdacs803q4gv2ulsz2n276kxmytmcy38aehqkql5tysj <0a096df50db4a5718c6dee2077c4154315cfc04a9abdab1b645ef0489fb9b82c@buzz.block.builderlab.xyz> Signed-off-by: npub1pgykmagdkjjhrrrdacs803q4gv2ulsz2n276kxmytmcy38aehqkql5tysj <0a096df50db4a5718c6dee2077c4154315cfc04a9abdab1b645ef0489fb9b82c@buzz.block.builderlab.xyz>
Author
|
Shelving for now: the original macOS Now Playing/media-key behavior is no longer reproducible in the installed app, so we cannot establish a baseline or complete the real-WKWebView validation for this change. |
Remove the HTML audio preload and fallback from the poof effect so macOS cannot retain it as resumable localhost media. Keep playback on decoded Web Audio buffers and cover mount and playback with a regression test. Co-authored-by: Pinky <0a096df50db4a5718c6dee2077c4154315cfc04a9abdab1b645ef0489fb9b82c@buzz.block.builderlab.xyz> Signed-off-by: Pinky <0a096df50db4a5718c6dee2077c4154315cfc04a9abdab1b645ef0489fb9b82c@buzz.block.builderlab.xyz>
nathan-thillairajah
marked this pull request as ready for review
August 5, 2026 20:19
Author
|
Reopened after the baseline reproduced. Manual testing then revealed a second app-owned HTML media source in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Move all short Buzz-owned UI sounds involved in the reported macOS behavior off resumable HTML media:
HTMLAudioElements.HTMLAudioElementpreload and fallback; retain the effect through decoded Web Audio buffers.This prevents macOS from listing Buzz as
localhostin Now Playing and routing the hardware play/pause key to either the last notification or the globally preloaded poof sound. The Settings sound preview remains stoppable.Root cause
The initial notification-only fix was incomplete. Manual testing exposed a second, different sound registered as
localhost:PoofBurstProviderconstructed and preloaded/pow/plop.m4aon app mount. Because that HTML media element persisted globally, macOS could retain it as a resumable media session even without a notification.Manual test (macOS)
Tested a branch-built
Buzz Dev (fix-notification-media-session)against the production relay:Observed after the expanded fix: no
localhostNow Playing item appeared, and no Buzz-owned sound was replayed by the media key.Validation
At commit
65833a283623194cfe534dd1b30e1136e8cca9a1:Regression coverage asserts that mounting and triggering
PoofBurstProvidernever constructs HTML media while Web Audio playback still starts.