Replace Windows Media Player with VLC#147
Draft
KeinNiemand wants to merge 15 commits into
Draft
Conversation
Windows Media Foundation causes 30-second freezes when opening or seeking large .m4b files — the same freeze reproduces in Windows Media Player itself. VLC opens the same files instantly. Replace the audio backend with LibVLCSharp + VideoLAN.LibVLC.Windows: - LibVLC runs its own threaded demuxer/decoder, bypassing WMF entirely - Remove hidden MediaPlayerElement from PlayerControlGrid and LegacyPlayerPage - Add public Play(), Pause(), NaturalDuration on PlayerViewModel so external callers no longer reference the player backend directly - EndReached dispatches to UI thread to avoid LibVLC deadlock Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ut all on OnTimeChanged on the main thread via dispatcher queue.
Ignore stale time updates while a new VLC media is opening, and keep chapter/seek UI updates explicit without bringing back the broad SyncPlaybackState refactor.
… use samplerate resampler to fix stutter caused by speex
Contributor
Author
|
Not sure the Arm64 support is even needed, I think LibVLCSharp currently already works on arm64 windows using the x64 emulation arm windows has, unfortunately I do not have a windows arm device to test if this branch already works on arm. |
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.
Fixes #145
My newPlayer branch is at the point where as far as I can tell everythin works at least as well as, in the windows media palyer version, there are probably still bugs that need further testing but I'm ready to make this a PR.
I will mark this PR as draft for now since currently the LibVLC nuget package does not include ARM64, there is an upstream PR on the libvlc nuget package build that would add arm64 which is one option the other option is to either include the arm64 dlls manually or to make our own package that includes arm64 (or rely on a prexisting unoffical package if there are any)
Either way the ARM64 problem has to be resolved before this can be merged, note that libvlc and vlc themselves do support arm64 windows which makes this purely a problem with the package.
My pr/vlc-player branch for this PR has been rebased to remove by other dependency replacement changes, and incorporate the merge of my other PR, I have not tested whether everything works after the rebase since I can't build without those changes.
Please let me know if this works or not and if there anything else besides the arm64 problem I should fix before this can be merged.