Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在python中从非异步方法发布嵌入
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想在调用函数“play_next()”时发布嵌入。问题在于此方法是非异步方法。有人能给我解释一下如何从非异步方法进行异步调用吗</p> <pre><code>def play_next(self, ctx): self.voicechannel = discord.utils.get(self.bot.voice_clients, guild=ctx.guild) if len(self.song_queue) >= 1: del self.song_queue[0] source = os.path.join(self.QUEUE_PATH, self.song_queue[0]) audio = MP3(source) await self.postEmbed(ctx, self.song_queue[0], audio.info.length) self.voicechannel.play(discord.FFmpegPCMAudio(source=source), after=lambda e: self.play_next(ctx)) else: self.voicechannel.disconnect() </code></pre> <p>编辑:</p> <pre><code>@commands.command() async def play(self, ctx, url): connect_check = await self.join(ctx) if connect_check: video_title = self.getUrlTitle(url) + ".mp3" check_path = os.path.join(self.QUEUE_PATH, video_title) song = "" print(os.path.exists(check_path)) if not os.path.exists(check_path): print("We are in IF") url_song = await self.download_song(url) song = os.path.join(self.QUEUE_PATH, url_song) else: print("We are in Else") song = check_path self.song_queue.append(song) if not self.voicechannel.is_playing(): audio = MP3(song) await self.postEmbed(ctx, self.song_queue[0], audio.info.length) await self.voicechannel.play(discord.FFmpegPCMAudio(source=song), after=lambda e: self.play_next(ctx)) self.voicechannel.volume = 100 await ctx.send('Now playing...') else: await ctx.send('Song queued') else: await ctx.send("Der Bot ist bereits in einem Channel! Er kann nicht an zwei Orten gleichzeitig sein ;)") </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在discord机器人中使用同步功能是一个非常糟糕的主意,它可能会冻结整个机器人。在您的情况下,我建议将<code>play_next</code>函数更改为async</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
5 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
2 回答
我是否正确理解Keras中的批次大小?
9 回答
我是否正确理解PyTorch的加法和乘法?
9 回答
我是否正确组织了我的Django应用程序?
4 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
2 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
6 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
7 回答
我是否用python安装了socks模块?
7 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
9 回答
我是否缺少spaCy柠檬化中的预处理功能?
9 回答
我是否缺少给定状态下操作的检查?
1 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
10 回答
我是否能够使用用户输入作为colorama模块中的颜色?
6 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
2 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
8 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
9 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
3 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
4 回答
我是否要使它成为递归函数?
9 回答