检查用户是不是在不和谐的 vc 中进行流式传输

Posted

技术标签:

【中文标题】检查用户是不是在不和谐的 vc 中进行流式传输【英文标题】:Check if a user is streaming in a discord vc检查用户是否在不和谐的 vc 中进行流式传输 【发布时间】:2021-04-09 05:35:04 【问题描述】:

我希望我的机器人使用 discord 的 Go Live! 语音频道功能检测是否有人正在流式传输到频道。

然后只让人们连接到等候室,以避免人们发送垃圾邮件并干扰流。唯一的问题是文档显示您可以检查他们是否在 twitch 或 youtube 等上进行流式传输。如何使用我的机器人来检测是否有人流式传输到不和谐频道?

我试过的唯一代码是:

@client.event
async def on_member_update(before, after):
  print(before)
  print(after)

但我没有得到任何输出,甚至没有错误消息。

【问题讨论】:

您是否要检查某个特定用户是否在线? @DapperDuck 不,我只想检查是否有人在特定频道中直播 【参考方案1】:

您可以使用VoiceState 实例的self_stream 属性来检查用户当前是否正在流式传输到语音频道。

当成员停止或开始流式传输时进行标记的示例:

@client.event
async def on_voice_state_update(member, prev, cur):
    if prev.channel and cur.channel:  # If a user is connected before and after the update
        if prev.self_stream != cur.self_stream:
            # cur.self_stream will return True whether they're currently streaming
            print("User's self-stream updated!")

像往常一样,您将能够通过VoiceState的其他属性获取他们当前的频道等:

cur.channel  # etc.

参考资料:

VoiceState.self_stream VoiceState.channel on_voice_state_update()

【讨论】:

以上是关于检查用户是不是在不和谐的 vc 中进行流式传输的主要内容,如果未能解决你的问题,请参考以下文章

检查 gRPC 流何时为空或不是流式传输数据

即使在不和谐中明确检查历史记录后仍重复消息

如何流式传输(大)日志文件?

在不提示手表的情况下检查用户是不是连接了 AppleWatch

如何检查字符串是不是包含在数组中?不和谐.js

有没有办法在 Discord.py 中流式传输视频?