gpt4 book ai didi

python - 使用 FFmpegPCMAudio 在 Discord py 中播放多个音频文件

转载 作者:行者123 更新时间:2023-12-04 23:18:32 26 4
gpt4 key购买 nike

我试图制作一个不和谐的钢琴机器人。下面我有分别播放两个音符 a 和 b 的命令。此代码有效,但无法重叠音频文件,或在运行另一个命令时取消播放音频文件。我收到错误:“discord.errors.ClientException:已经在播放音频。”这似乎很明显,但我认为它可能对上下文有用。

@commands.command()
async def a(self, ctx):
source = discord.FFmpegPCMAudio("A3.mp3")
ctx.voice_client.play(source)

@commands.command()
async def b(self, ctx):
source = discord.FFmpegPCMAudio("B3.mp3")
ctx.voice_client.play(source)

最佳答案

我不能就 discord.py 给你任何具体的建议,但我可以告诉你需要做什么,因为我过去在完全不同的环境中做过类似的事情(在互联网流媒体时代之前)。
首先,问题与 FFmpeg 无关,与 discord.py 如何处理音频播放有关。底线是您的错误表明每个 voice_client.play() call 基本上占据了音频流,阻止你对流做任何其他事情,直到它完成播放它被指示播放的内容。
您需要的是一个音频混音器设备,它可以在将混音推送到音频流之前组合多个音频信号,以及音频设备接受来自混音器的流,从而实现无缝播放。
您可以查看 discord.py 以查看这些功能是否可用。流音频输入必须由库支持,但您可以围绕流机制实现自己的软件混音器。
另一种可能性是 MIDI。如果支持 MIDI,它可能会给你更好的控制但更陡峭的学习曲线。

关于python - 使用 FFmpegPCMAudio 在 Discord py 中播放多个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71545079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com