首页 > 解决方案 > on_ready 上的 discord.py Music Bot 加入指定频道并使用 youtube-dl 流式传输 mp3

问题描述

当机器人准备好时,如何使用 youtube-dl 播放 mp3 文件中的流音频?我已经知道如何使用 id 连接到一个频道,但我不知道如何在这个频道中播放我有从官方 basic_voice.py 示例复制的 YTDLSource 类,现在我想在 on_ready 上执行此操作 player = await YTDLSource.from_url(url, loop=self.bot.loop, stream=True) ctx.voice_client.play(player, after=lambda e: print('Player error: %s' % e) if e else None)而无需扩展或其他东西。

标签: discord.pyyoutube-dl

解决方案


我不完全理解您要做什么,但是您可以将视频下载为 mp3,然后使用voice_client = discord.utils.get(ctx.bot.voice_clients, guild=ctx.guild)client.voice_clients - Api docs)您可以获得所连接服务器中的语音客户端对象。虽然您需要先获取公会,因为当有人发送命令或消息时您没有这样做,但您可以使用bot.get_guild(#Server id you want to do this in)原始 discord.utils.get 函数中的公会参数并将其作为公会参数传递

然后使用voice_client.play(discord.FFmpegPCMAudio(##Mp3 File Path))VoiceClient.play() - Api docs)将 mp3 文件播放到频道

您可以在 on_ready 函数中完成所有这些操作


推荐阅读