You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人恢复暂停音频报错:VoiceClient.play()缺少source参数

Discord机器人Resume命令报错解决

错误根源

你遇到的TypeError: VoiceClient.play() missing 1 required positional argument: 'source',是因为在resume命令里错误调用了VoiceClient.play()方法——这个方法必须传入音频源参数才能执行,但恢复暂停的音频根本不需要用play(),应该用Discord.py提供的VoiceClient.resume()方法,它专门用来恢复被暂停的播放任务,不需要额外传参。

正确的Pause/Resume命令示例

把你的resume命令代码改成调用resume()而不是play(),参考以下完整示例:

@bot.command()
async def pause(ctx):
    # 检查机器人是否在语音频道且正在播放
    if ctx.voice_client and ctx.voice_client.is_playing():
        ctx.voice_client.pause()
        await ctx.send("音频已暂停")
    else:
        await ctx.send("当前没有正在播放的音频")

@bot.command()
async def resume(ctx):
    # 检查机器人是否在语音频道且处于暂停状态
    if ctx.voice_client and ctx.voice_client.is_paused():
        ctx.voice_client.resume()  # 这里用resume而不是play
        await ctx.send("音频已恢复播放")
    else:
        await ctx.send("当前没有暂停的音频")

额外说明

如果你的需求不是恢复暂停的音频,而是重新播放某个音频文件,那才需要调用VoiceClient.play()并传入对应的音频源(比如discord.FFmpegPCMAudio("audio.mp3")),但恢复暂停的场景直接用resume()就足够了。

内容的提问来源于stack exchange,提问作者Arnos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:25:09