Discord.py Bot 不播放音乐
Posted
技术标签:
【中文标题】Discord.py Bot 不播放音乐【英文标题】:Discord.py Bot Not Playing music 【发布时间】:2021-02-06 19:56:22 【问题描述】:大家好,由于某种原因,我的机器人实际上可以加入,但无法播放音频。 实际上我对此完全陌生,我试图让它像 2 小时一样工作,并设法设置加入但不玩(或离开)命令。
import os
import random
from dotenv import load_dotenv
import youtube_dl
import discord
from discord.ext import commands
from discord.ext import commands
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
players=
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print(f'bot.user.name has connected to Discord!')
@bot.command(name="Ja_som_to_nebol.")
async def sranda(ctx):
sranda_quotes = ["Not gonna lie, kinda sus",
("Not gonna lie, kinda sus"), ]
response = random.choice(sranda_quotes)
await ctx.send(response)
#@bot.event
#async def on_command_error(ctx, error):
# if isinstance(error, commands.errors.CheckFailure):
# await ctx.send('You do not have the correct role for this command.')
@bot.command(name="join")
async def join(ctx):
channel = ctx.author.voice.channel
await channel.connect()
@bot.command(name="leave")
async def leave(ctx):
channel = ctx.author.voice.channel
await channel.disconnect()
@bot.command(name="play")
async def play(ctx, url):
guild = ctx.author.voice.channel
voice_client = discord.utils.find(lambda c: c.guild.id == server.id, client.voice_client)
player = await voice_client.create_ytdl_player(url)
players=[server.id] = player
player.start()
bot.run(TOKEN)
【问题讨论】:
这能回答你的问题吗? Discord Music bot VoiceClient' object has no attribute 'create_ytdl_player' youtube_dl 被删除:github.com/ytdl-org/youtube-dl 【参考方案1】:不要像这样玩,而是使用我使用的代码,你必须安装 FFmpeg。
@commands.command(name='play', aliases=['p'])
async def _play(self, ctx: commands.Context, *, search: str):
if not ctx.voice_state.voice:
await ctx.invoke(self._join)
async with ctx.typing():
try:
source = await YTDLSource.create_source(ctx, search, loop=self.bot.loop)
except YTDLError as e:
await ctx.send('An error occurred while processing this request: '.format(str(e)))
else:
song = Song(source)
await ctx.voice_state.songs.put(song)
await ctx.send('Enqueued '.format(str(source)))
我在这里使用了一些 Cogs,你可以自己编辑成普通代码。
【讨论】:
以上是关于Discord.py Bot 不播放音乐的主要内容,如果未能解决你的问题,请参考以下文章
如何在不下载任何 .mp3 文件和更多文件的情况下播放音乐 discord.py
Discord bot python:discord.errors.ClientException:找不到ffmpeg
Discord Py - Heroku 托管 Bot 上的音乐命令