首页 > 解决方案 > discord.ext.commands.errors.CommandInvokeError:命令引发异常:TypeError:__init__()缺少1个必需的位置参数:'source'

问题描述

我最近决定创建一个播放 MP3 音频的 Discord 机器人,但我找不到解决方案。

最初,错误是这样的:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientException: FFmpeg was not found, but we found a fix by writing next to FILE NAME.MP3, executable = 

上面的错误就出来了。你能帮助我吗?谢谢。

代码:

import discord
from discord.ext import commands
import random
import json
import math
import os

@client.command()
async def pmartina(ctx):
    voicechannel = discord.utils.get(ctx.guild.channels, name='Musica')
    vc = await voicechannel.connect()
    vc.play(discord.FFmpegPCMAudio(excutable="martina.mp3"), print('done'))

标签: pythonffmpegdiscord.pyyoutube-dl

解决方案


在您的vc.play(discord.FFmpegPCMAudio...行中,您使用的是 FFmpeg,但您从未导入过它。

import discord
from discord.ext import commands
import random
import json
import math
import os
import ffmpeg

@client.command()
async def pmartina(ctx):
    voicechannel = discord.utils.get(ctx.guild.channels, name='Musica')
    vc = await voicechannel.connect()
    vc.play(discord.FFmpegPCMAudio(excutable="martina.mp3"), print('done'))

另外,请确保下载 ffmpeg并正确设置路径。网上有很多视频可以帮助您正确地做到这一点,例如这个适用于 Windows 的视频和这个适用于 MacOS 的视频。如果您想要更详细的演练来制作音乐机器人,请参阅此视频


推荐阅读