From 7488b260e1b14ef9efd2f91e0b6ebdb0e015276b Mon Sep 17 00:00:00 2001 From: Christoph Stahl Date: Sun, 2 Feb 2025 14:10:52 +0100 Subject: [PATCH] MPV changed something, so `audio_file` does not work anymore :/ Audio is now loaded via a callback --- syng/player_libmpv.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/syng/player_libmpv.py b/syng/player_libmpv.py index 2778873..ce29c2a 100644 --- a/syng/player_libmpv.py +++ b/syng/player_libmpv.py @@ -57,6 +57,7 @@ class Player: "scale": "bilinear", } self.quit_callback = quit_callback + self.callback_audio_load: Optional[str] = None def start(self) -> None: self.mpv = mpv.MPV(ytdl=True, input_default_bindings=True, input_vo_keyboard=True, osc=True) @@ -75,6 +76,10 @@ class Player: if not self.closing: self.closing = True self.quit_callback() + elif e["event"] == b"file-loaded": + if self.callback_audio_load is not None and self.mpv is not None: + self.mpv.audio_add(self.callback_audio_load) + self.callback_audio_load = None def update_qr(self, qr_string: str) -> None: qr = QRCode(box_size=self.qr_box_size, border=1) @@ -173,7 +178,8 @@ class Player: loop = asyncio.get_running_loop() self.mpv.pause = True if audio: - self.mpv.loadfile(video, audio_file=audio) + self.callback_audio_load = audio + self.mpv.loadfile(video) else: self.mpv.loadfile(video) self.mpv.pause = False