簡體   English   中英

有沒有辦法不調用連接命令就可以播放音頻? (pycord)

[英]Is there a way to play audio without calling the connect command? (pycord)

在我的實現中,每當我在機器人連接到語音通道時調用 play 方法時,它都會拋出錯誤。 但是,官方文檔,包括有關此事的其他視頻,都使用相同的方法。 我發現的主要原因是調用connect 方法是必要的,因為它將 'voice' 視為VoiceProtocol ,這對於使用play 方法播放音頻是進一步必要的。

@bot.slash_command(guild_ids=\[\])
async def play(ctx, audio):
channel = ctx.author.voice.channel
voice = await channel.connect()
audio_source = discord.FFmpegPCMAudio(source=f'audio/{audio}.mp3', executable='C:/FFmpeg/bin/ffmpeg.exe')
voice.play(audio_source)
await ctx.respond(f'Now playing `{audio}`')

如果我打電話時機器人已經在語音通道中

voice = await channel.connect()

然后它會拋出錯誤

discord.errors.ApplicationCommandInvokeError:應用程序命令引發異常:ClientException:已經連接到語音通道。

這是pycord的官方文檔在這里用來播放音頻的確切方法

您可以從guild.voice_client獲取語音客戶端。 檢查比連接前

if ctx.guild.voice_client:
    voice = ctx.guild.voice_client
else:
    voice = await channel.connect()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM