Я реализовал дискорд бота с функцией проигрывания музыки:
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
'outtmpl': '1.%(etx)s',
'quiet': False
}
@bot.command()
async def play(ctx, url):
try:
os.remove('1.mp3')
except:
pass
channel = ctx.message.author.voice.channel
voice = get(bot.voice_clients, guild=ctx.guild)
if voice and voice.is_connected():
await voice.move_to(channel)
else:
voice = await channel.connect()
# ctx.message.author.voice.channel.connect()
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([str(url)])
await ctx.send('downloading...')
time.sleep(20)
voice.play(discord.FFmpegPCMAudio('1.mp3'))
Но почему-то все скаченные треки подвисают, хотя вроде и поставил задержку. В чем может быть проблема?