【问题标题】:How use a API call with discord.py?如何在 discord.py 中使用 API 调用?
【发布时间】:2020-11-12 14:36:36
【问题描述】:

我在 python 中使用 API,当 我向这个 API 发出请求时,服务器必须在频道中发送音频消息。

在文本频道中,我使用了一个 webhook,它为我提供了频道的上下文。我需要这样的东西才能播放音频。

有什么方法可以做到这一点?

【问题讨论】:

    标签: python api discord discord.py discord.py-rewrite


    【解决方案1】:

    通过bot发送音频文件后无法播放。

    你可以做的是下载音频文件并使用 FFMPEG 播放它

    【讨论】:

      【解决方案2】:

      所以如果我理解正确的话,每次发送 API 调用时,您都希望将声音片段发送到频道?

      如果是这种情况,这应该很简单,在你的 API 函数中,在你进行 API 调用之后,你应该创建一个 if 语句来检查 API 返回是 200,然后你应该使用 VoiceState 来获取用户当前的语音通道,或者您可以简单地在代码中硬编码语音通道 ID。

      headstart 可能看起来像这样。

      voice_channel = ctx.author.voice.channel
      vc = await voice_channel.connect()
      vc = ctx.voice_client
      vc.play(discord.FFmpegPCMAudio(executable="c:/ffmpeg/bin/ffmpeg.exe", source='your_file.mp3'))
      await asyncio.sleep(5) # alter this depending upon how long your file will be
      await vc.disconnect()
      

      注意,使用此方法您需要将 asyncio 导入文件顶部,并且需要下载 FFMPEG 并使用这部分代码进行链接

      vc.play(discord.FFmpegPCMAudio(executable="c:/ffmpeg/bin/ffmpeg.exe", source='your_file.mp3'))
      

      如果您需要知道如何使用 API 查看是否收到 200 响应,一种方法是

      if APIReq.status_code == 200:
          print("Status Code: " + str(APIReq.status_code))
      

      其中 APIReq 等于您的 requests.get 用于 API 调用的变量名称。

      这对您开始有帮助吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-25
        • 2019-04-30
        • 1970-01-01
        • 1970-01-01
        • 2023-01-06
        • 2020-08-02
        • 2020-12-22
        • 1970-01-01
        相关资源
        最近更新 更多