Repository navigation
Conversation
This branch has not been deployed
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.
Starting AirPlay from Speakers should send Spotifly’s Spotify music alone while other app audio and alerts stay local. The current macOS 27 renderer has no tested bridge to the native picker. This draft specifies a second output within the existing playback owner and records disposable prototype evidence. The PR changes plans and the changelog only.
The design keeps the existing renderer for Mac output and uses AVPlayer with a complete PCM CAF for native AirPlay. Use AirPlay prepares the asset and carries the song’s media position, stream gain and play/pause intent; its bound native picker selects the destination. Return to Mac explicitly restores the existing renderer. Picker callbacks describe presentation and do not identify the receiver. The disposable one-song prototype rejects new-track commands before queue mutation and holds at native end; decoded storage is capped at 512 MiB.
The user confirms that the revised Speakers picker opens and switches to HomePod, ordinary pause/play works, and seeking works after preserving the picker/player through seek transitions. Picker volume works, but the now-playing bar’s volume has no audible effect. A separate SwiftUI defect leaves a focus ring at the slider’s former thumb position; an AppKit slider corrects the reproduced focus-mask failure in the disposable candidate. The new command trace confirms that bar volume reaches AVPlayer while playing. A separate candidate applies stream gain through the prepared CAF item’s audio mix, preserving the player/item and avoiding double gain. Offline PCM attenuation, mute, stale commands and backward-seek checks pass. The user explicitly tested this build: HomePod volume still has no audible effect, while the blue ring is gone. The PCM reader does not observe transmitted AVPlayer audio. Custom bar gain remains unresolved; a native receiver-volume menu directly in the bar is the next UX option, pending the user’s preference.
Latest verification, 2026-10-09:
Carried audible position, explicit return and gaps/overlap still need supervised evidence. Both attempted custom-gain mechanisms failed the HomePod retry; the native receiver slider remains the working control. Supported receiver-loss protection, crash cleanup, production resource/queue/gapless behavior and negotiated AirPlay transport remain release gates. Earlier real-song playback/isolation and bounded receiver-loss observations are qualified separately in the feasibility record.