Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我用Replit在discord.py上创建了一个简单的音乐机器人,但它总是给我一个错误_Python_Python 3.x_Discord.py - Fatal编程技术网

Python 我用Replit在discord.py上创建了一个简单的音乐机器人,但它总是给我一个错误

Python 我用Replit在discord.py上创建了一个简单的音乐机器人,但它总是给我一个错误,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,代码 voiceChannel=discord.utils.get(ctx.guild.voice\u channels,name='CBT') voice=discord.utils.get(client.voice\u clients,guild=ctx.guild) 等待voiceChannel.connect() ydl_opts={ “格式”:“最佳音频/最佳”, “后处理器”:[{ “键”:“FFmpegExtractAudio”, “首选编解码器”:“mp3”, “首选质量”:“1

代码

voiceChannel=discord.utils.get(ctx.guild.voice\u channels,name='CBT')
voice=discord.utils.get(client.voice\u clients,guild=ctx.guild)
等待voiceChannel.connect()
ydl_opts={
“格式”:“最佳音频/最佳”,
“后处理器”:[{
“键”:“FFmpegExtractAudio”,
“首选编解码器”:“mp3”,
“首选质量”:“192”,
}],
}
使用youtube_dl.YoutubeDL(ydl_选项)作为ydl:
下载([url])
对于os.listdir(“./”)中的文件:
如果文件.endswith(“.mp3”):
重命名(文件“song.mp3”)
我想这给了我一个问题

voice.play(discord.FFmpegPCMAudio('song.mp3'))
错误消息:

AttributeError: 'NoneType' object has no attribute 'play'

该错误仅仅意味着
discord.utils.get()
调用返回
None
Client.voice\u clients
属性是一个对象列表。(实际的语音连接是对象。)
ctx.guild
属性(对象)的数据类型与
Client.voice\u clients
的项目不同,因此
discord.utils.get()
将始终返回
None

我认为您必须使用
for
循环来迭代每个语音连接,并检查协会是否匹配:

连接=无
对于client.voice_客户端中的vconn:
如果vconn.guild==ctx.guild:
连接=vconn
打破
断言连接不是无