免责声明:我已经转发了这个问题,并删除了最初的问题,因为一个人给出了一个愚蠢的答案,降低了这个问题的可见性。
基本上,我正在将我的机器人迁移到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在Windows机器上进行测试。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与webSocket==6.0和aiohttp==3.3.0
也许你有FFMPeG安装不当。尝试手动安装
https://ffmpeg.org/download.html
这是官方页面,您需要下载并粘贴到本地磁盘上。最后,在安装它之前,您需要将它放在路径上,搜索系统属性
(如果您在Windows上),并编辑环境变量
。
我在我的discord机器人上遇到了一个问题。命令不起作用。我认为代码不是问题。除了命令外,一切都很完美。不和谐,如果我使用!在这里测试mytext,什么都不会发生。 提前谢谢你!
null 关键是我使用jLayer的实现不起作用:当我执行play-pause-resume时,音频被暂停,但随后从文件中的随机点恢复。 我该怎么修好它?
如果我执行类似于它工作正常。 但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码: 有人能帮忙吗?
我无法在我的MediaPlayer应用程序中运行某个特定的流。我知道该应用程序可以工作,但当我决定更改我的流媒体服务时,新的URL无法工作。将这个URL插入网络浏览器确实有效。以下是我的相关代码: 然后,在onPrepared()中: 这是我的LogCat(在装有Android 4.3的三星Galaxy Nexus上运行): 有什么想法吗? 编辑 我做了更多的挖掘,并为上面提供的链接设置了一个Ht
我有一个不和谐的机器人写在不和谐的js。我有一个命令,在语音频道播放mp3文件。 如果我在我的windows pc上运行bot,一切都会正常工作。机器人加入频道,播放文件,然后再次离开。如果我在我的Ubuntu18.04虚拟机上运行bot,bot会在不播放文件的情况下加入并立即断开连接。 mp3文件的路径是绝对的。我已经尝试使用connection.play文件(路径)代替相同的问题。我尝试使用o
我的目标是创建一个discord bot,该bot使用用户发送的相同消息进行响应,如果用户发送文件,则bot将发送该文件的链接。 我可以让两个部分分开工作,但在一起我只是遇到了问题(见底部),在我目前的代码中只有独立文件发送工作,文本消息没有,如果你有文本文件,文件链接将由机器人发送但是文本不会。如果我把第二部分放在上面,那么我得到的基本上是完全相反的,只有文本被发送,没有文件。 我的代码: 底部