Skip to content

音频与媒体

音频相关能力分成两类:gateway 音频事件,以及群/C2C 的媒体文件发送。

音频事件

开启对应 intents 后,平台会通过 gateway 推送音频状态和语音/直播子频道成员变更:

  • audio_start
  • audio_finish
  • on_mic
  • off_mic
  • audio_or_live_channel_member_enter
  • audio_or_live_channel_member_exit

Audio 会携带 channel id、guild id、audio url、文本描述和内部 event id。PublicAudio 用于语音/直播子频道成员进入和离开事件,PublicAudioType 用来区分 voice 与 live。

这些事件适合做日志、统计、状态同步,或触发普通消息回复。

群与 C2C 媒体上传

群和 C2C 消息可以先上传媒体,再发送引用该媒体的消息。

rust
let media = session.post_file(1, image_url, None).await?;
session.send_media_message(media).await?;

file_type 使用平台协议值:常见值为 1 图片、2 视频、3 语音、4 文件。C2C 使用 post_c2c_file,参数形态相同。

srv_send_msgSome(true) 时,平台会在上传后直接发送;传 NoneSome(false) 时,把返回的 Media 传给 send_media_message,或使用 GroupMessageParams::new_media / C2CMessageParams::new_media

基于 MIT 许可证发布