feat(audioPiP): seamless playback of audio files/voice messages#4262
Open
okisooo wants to merge 14 commits into
Open
feat(audioPiP): seamless playback of audio files/voice messages#4262okisooo wants to merge 14 commits into
okisooo wants to merge 14 commits into
Conversation
okisooo
marked this pull request as ready for review
June 1, 2026 10:50
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Introduces a new AudioPiP plugin that provides a draggable/resizable floating audio player UI and adds the plugin author to the shared developer constants.
Changes:
- Added
AudioPiPplugin implementation (UI + audio tracking + channel-change behavior) - Added full styling and a brief README for the plugin
- Added
OKISOentry toDevsfor plugin authorship attribution
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 19 comments.
| File | Description |
|---|---|
| src/utils/constants.ts | Adds OKISO to Devs so the new plugin can declare its author. |
| src/plugins/audioPiP/index.tsx | Implements the AudioPiP player, including audio interception, store, UI, drag/resize logic, and plugin lifecycle. |
| src/plugins/audioPiP/style.css | Provides the look/feel for the floating player, including controls, sliders, and resizer affordances. |
| src/plugins/audioPiP/README.md | Adds basic plugin documentation/description. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Author
|
forgot i had copilot autoreviews on for some reason, immediately turned them off bruh, sorry for that spam |
|
Only cool PR in Vencord's history congratulations |
- capturing audio cleanly - fixed cache loops and instead grabbing props directly from the audio element - fixed WeakSets - new settings toggle if you want the PiP to always come up even in the active tab
|
This is so good, I actually may need this ASAP!! |
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.
Describe your Changes
New plugin for audio playback consistency: AudioPiP
Idea started from actual necessity and having a quick convo with the man John Vencord himself telling me this was doable, I decided to give it a shot since I produce music and offload a bunch of audio files on Discord.
Tabbing out just for the audio to end abruptly always bothered me, and I am rather certain this would be useful to so many other prods out there, or even just the average user.
This abrupt audio cut doesn't happen on mobile, since Discord added a nice PiP feature that quickly smooths out the playback feel when tabbing out which is what this plugin aims to achieve for Desktop.
The PiP player
(don't mind the cat LOL)
Desktop PiP
I tried to recreate the mobile PiP and readapt it for what I think it should look like on Desktop.
Resizing
Just like streams, you'll be able to resize the popup as you please, within margins.
Dragging & Snapping
It also has the same dragging behavior so it feels nice to have on the screen, and doesn't feel invasive.
Specific behaviors
(active resize corner is dependent on where the PiP is located).
Overall, seamless feel with the goal of keeping a consistent playback experience when tabbing out, which is the ultimate goal of the plugin.
Checklist before submitting