Discord.py,bot无法播放任何mp3文件

时间:2019-10-18 06:38:41

标签: python discord discord.py discord.py-rewrite

免责声明:我重新发布了此问题,并删除了原始问题,因为一个人给出了一个愚蠢的答案,从而降低了该问题的可见性。

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

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

我这样写事件:

@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

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

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

我现在完全迷失了……我真的不知道我在做什么错。

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

更新:

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

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

1 个答案:

答案 0 :(得分:0)

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

<块引用>

https://ffmpeg.org/download.html

这是官方页面,需要下载后粘贴到Local Disk。最后安装它,你需要把它放在 PATH 上,搜索 system properties(如果你在 Windows 上),然后编辑 Environment Variables