From a493d4eaf5d3ceece32b5d5f518e4f89aef129e3 Mon Sep 17 00:00:00 2001 From: SimolZimol <70102430+SimolZimol@users.noreply.github.com> Date: Tue, 28 Oct 2025 16:08:02 +0100 Subject: [PATCH] modified: Dockerfile modified: app.py --- Dockerfile | 2 ++ app.py | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 94bfc4f..56eecb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,8 @@ WORKDIR /app RUN apt-get update && apt-get install -y \ libffi-dev \ libnacl-dev \ + libopus0 \ + ffmpeg \ python3-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/app.py b/app.py index f6f6747..4da54d8 100644 --- a/app.py +++ b/app.py @@ -1435,14 +1435,15 @@ class GuildMusic: audio = discord.FFmpegPCMAudio(stream_url, before_options=FFMPEG_BEFORE_OPTS, options=FFMPEG_OPTS) source = discord.PCMVolumeTransformer(audio, volume=self.volume) done_evt = asyncio.Event() + loop = asyncio.get_running_loop() def after_play(err): try: if err: logging.warning(f"Player error: {err}") finally: - # Signal to loop that track ended - asyncio.run_coroutine_threadsafe(done_evt.set(), asyncio.get_event_loop()) + # Signal to loop that track ended from voice thread + loop.call_soon_threadsafe(done_evt.set) self.voice.play(source, after=after_play)