python - Discord bot python:discord.errors.ClientException:找不到ffmpeg
问题描述
我正在尝试制作一个在语音频道中播放音乐的不和谐机器人。它连接到语音通道,但不播放任何内容。它还在控制台中给出错误。
我在 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)
错误:
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.
人们似乎有类似的问题,ffmpeg/avconv was not found in your PATH environment variable
但他们的解决方法是从网站下载 ffmpeg 并将其放入他们的 PATH 中,但这对我不起作用。
此外,我只能在 JavaScript 中找到解决我的问题的方法,而我正在用 Python 3 编写机器人。
以下是我研究的一些链接:
解决方案
您可以使用参数executable直接指定 FFmpeg 可执行文件:
vc = await channel.connect()
vc.play(discord.FFmpegPCMAudio(executable="C:/path/ffmpeg.exe", source="mp3.mp3"))
推荐阅读
- linux - Raspberry pi:关联“screen”和 Systemd 以在 pi 启动时自动启动 minecraft 服务器
- python - 如果输入不正确,有没有办法阻止程序运行?Python
- python - 我想计算特定月份的熊猫列的平均值
- amazon-web-services - AWS Systems Manager - 实例未显示
- system-verilog - 系统 Verilog 参数化模块名称
- python - PNG不会在弹出窗口Tkinter中显示
- reactjs - cypress - 启动服务器并测试 - 在 React 应用程序上运行 http 模拟服务器和套接字服务器
- c++ - 初始化在同一头文件中定义的底层的顶层类
- php - ORA-12546: TNS:permission denied 错误连接到远程 oracle 服务器
- php - 在外部 URL 上使用 file_get_contents 时如何捕获错误