【问题标题】:How to have bot automatically disconnect after playing audio file播放音频文件后如何让机器人自动断开连接
【发布时间】:2021-08-08 05:10:33
【问题描述】:

在我的机器人读取音频文件后,我需要它离开频道。我试图在线路中加入“await voice.disconect()”,但在机器人加入频道后断开了它。如何实现这一点以使机器人在播放文件后离开?

#imports
import discord
from discord.ext import commands
from discord import FFmpegPCMAudio
import random
from discord import embeds
from discord import message
from discord import guild
from discord_slash import SlashCommand

#define client & prefix
client = commands.Bot(command_prefix = '!')

#list of audio for random.choice
Audio = ['LIST OF AUDIO FILES']

#join & play file command
@client.command(pass_context=True)
async def yolk(ctx):
    if (ctx.author.voice):
        channel = ctx.message.author.voice.channel
        voice = await channel.connect()
        source = FFmpegPCMAudio(random.choice(Audio))
        player = voice.play(source)
    else:
        await ctx.send("User not in a voice channel, unable to connect.")

client.run('BOT TOKEN')

【问题讨论】:

  • 您是否尝试过在断开连接前睡觉? (睡在await asyncio.sleep(secs)
  • @12944qwerty 非常感谢!我什至不知道这是一件事!现在,既然我这样做了,实际上可以解决很多其他问题!谢谢兄弟。

标签: python discord discord.py


【解决方案1】:

有 after 参数可以传递给voice.play。所以你可以做到这一点

voice.play("audio.mp3", after=await voice.disconnect())

我没有尝试使用异步功能,但我想这会起作用。

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 2022-01-24
    • 2018-09-10
    • 1970-01-01
    • 2021-11-19
    • 2020-09-05
    相关资源
    最近更新 更多