Discord.py,机器人不播放任何mp3文件



免责声明:我转发了这个问题,并删除了原来的问题,因为一个人给出了一个愚蠢的答案,降低了问题的可见性。

基本上,我正在将我的机器人迁移到 discord.py 的重写版本。

我正在使用上一个中的几个功能测试机器人,现在我正在使用 on_voice_state_update(( 事件测试音频功能,当有人加入频道时,机器人应该播放音频。

我这样写事件:

@bot.event
async def on_voice_state_update(member, before, after):
global bot_voice_status
global tts_status
global vc
if(bot_voice_status == 0 and tts_status == 0 and member.display_name.find("St3veB0T") == -1):
if(before.channel == None): 
rand = randint(0, len(os.listdir("audio"))-1)    
ix = 0
for filename in os.listdir("audio"):
if(ix == rand):    
c = 0
try:
vc = await after.channel.connect()
c = 1
except:
break
if(c == 1):
try:
audio_source = discord.FFmpegPCMAudio((os.path.join("audio",filename)))
vc.play(audio_source, after=lambda e: print('done', e))
while vc.is_playing():
await asyncio.sleep(1)
vc.stop()
await vc.disconnect()
break
except:
await vc.disconnect()
break
ix = ix + 1

此代码的作用是,检查用户是否加入了语音频道,加入了实际的语音频道,然后尝试播放文件夹中的随机音频文件,之后它应该离开语音频道。

问题是,当我加入频道时,机器人加入,但不播放任何音频,也不会在终端上写入任何输出或错误。等待一段时间后,我看到机器人甚至没有与频道断开连接。

此时我完全迷失了...我真的不知道我做错了什么。

顺便说一句,我正在使用python 3.7.3 64位在Windows机器上进行测试

更新:

进行日志记录时,我收到以下警告:

2019-10-18 15:26:39,757:DEBUG:discord.client: Dispatching event socket_raw_send
2019-10-18 15:26:39,932:DEBUG:discord.client: Dispatching event socket_raw_receive
2019-10-18 15:26:39,933:DEBUG:discord.gateway: For Shard ID None: WebSocket Event: {'t': None, 's': None, 'op': 11, 'd': None}
2019-10-18 15:26:39,933:DEBUG:discord.client: Dispatching event socket_response
2019-10-18 15:26:41,605:WARNING:discord.gateway: Shard ID None has stopped responding to the gateway. Closing and restarting.

我正在使用 discord.py==1.2.3 与 websockets==6.0 和 aiohttp==3.3.0

也许您没有正确安装 FFMPeG。尝试手动安装

https://ffmpeg.org/download.html

这是官方页面,您需要下载并粘贴到本地磁盘上。最后安装它,您需要将其放在 PATH 上,搜索system properties(如果您在 Windows 上(,然后编辑Environment Variables.

相关内容

最新更新