Discord bot python:discord.errors.ClientException:找不到ffmpeg

S. *_*ore 5 python ffmpeg python-3.x discord.py discord.py-rewrite

我正在尝试制作一个在语音频道中播放音乐的不和谐机器人。它连接到语音通道,但不播放任何内容。它还在控制台中给出错误。

我在 Windows 上,我正在使用 discord.py 重写。

我的代码:

import discord, random, datetime, asyncio, nacl, ffmpeg

TOKEN = 'What token'

client = discord.Client()

@client.event
async def on_message(message):
if message.content.lower() == '$play':
    if message.content.lower() == '$play':
        channel = client.get_channel(547155964328149007)
        vc = await channel.connect()
        vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
        vc.is_playing()
        vc.pause()
        vc.resume()
        vc.stop()

@client.event
async def on_ready():
    print('Logged in as {0.user}'.format(client))

client.run(TOKEN)
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "D:\Python35\lib\site-packages\discord\client.py", line 218, in _run_event
    await coro(*args, **kwargs)
  File "discord_bot.py", line 90, in on_message
    vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
  File "D:\Python35\lib\site-packages\discord\player.py", line 165, in __init__
    raise ClientException(executable + ' was not found.') from None
discord.errors.ClientException: ffmpeg was not found.
Run Code Online (Sandbox Code Playgroud)

人们似乎有一个类似的问题,ffmpeg/avconv was not found in your PATH environment variable但他们的解决方法是从网站下载 ffmpeg 并将其放入他们的 PATH 中,但这对我不起作用。

此外,当我在 Python 3 中编写机器人时,我只能在 JavaScript 中找到解决我的问题的方法。

以下是我研究的一些链接:

您需要将 FFmpeg 添加到您的路径中

针对相同错误的 discord.js (JavaScript) 修复

修复 discord.py,不适用于 discord.py 重写

小智 6

您可以直接使用参数executable指定 FFmpeg 可执行文件

vc = await channel.connect()
vc.play(discord.FFmpegPCMAudio(executable="C:/path/ffmpeg.exe", source="mp3.mp3"))
Run Code Online (Sandbox Code Playgroud)