【发布时间】:2021-12-31 21:18:29
【问题描述】:
我使用 discord.py 和 ffmpeg 构建了一个不和谐机器人,它可以工作,但是前 0-5 秒的歌曲播放速度太快,我认为它正在缓冲,所以我尝试使用 asyncio.sleep 但没有用,建议解决问题?
播放功能:
with youtube_dl.YoutubeDL(self.opts) as ydl:
await asyncio.sleep(0.1)
ydl.cache.remove()
await asyncio.sleep(0.1)
info = ydl.extract_info(url, download=False)
raw_url_song = info['formats'][0]['url']
await self.real_play(ctx, raw_url_song)
real_play 函数:
source = await discord.FFmpegOpusAudio.from_probe(processed_url_song, **self.FFMPEG_OPTIONS)
await asyncio.sleep(0.5)
self.vc.play(source, after=lambda e: asyncio.run_coroutine_threadsafe(self.real_play(ctx, processed_url_song), self.client.loop))
这些是选项:
self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
self.OPTIONS = {'format': 'bestaudio'}
self.opts = {'extract_flat': True, 'skip_download': True}
功能是分开的,因为我做了其他事情(例如播放列表),我只报告了理解问题的必要代码,并且缓存删除对于减少 HTTP 404 禁止错误的发生是必不可少的,顺便说一句也没有缓存删除问题依旧
【问题讨论】:
标签: python ffmpeg discord.py