docs.rs failed to build smtc-suite-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
smtc-suite
一个用于与 Windows 系统媒体传输控件 (SMTC) 和系统音频进行交互的 Rust 库。
smtc-suite 提供了一套安全、高效的 API,用于监听和控制 Windows 上的媒体播放、捕获系统音频输出,以及管理单个应用的音量。
核心功能
- 会话监控: 自动发现系统中所有支持 SMTC 的媒体源(如 Spotify, QQ 音乐等),并获取当前播放的曲目信息(标题、艺术家、专辑、封面)。
- 播放控制: 对当前活动的媒体会话发送播放、暂停、切歌、跳转等控制命令。
- 音频捕获: 捕获系统正在播放的音频流,并重采样到统一格式。
- 音量控制: 查找特定应用的音频会话,并获取或设置其音量。
- 异步驱动: 所有后台操作都在一个独立的、高效的异步工作线程中进行,通过通道与主应用通信,不会阻塞你的应用主线程。
安装
将 smtc-suite 添加到你的 Cargo.toml 文件中:
[]
= "*"
使用方法
与本库交互的唯一入口是 MediaManager::start() 函数。
- 调用
MediaManager::start()会启动所有必需的后台服务,并返回一个Result<MediaController>。 MediaController结构体是你与后台服务交互的句柄。它包含两个字段:command_tx: 一个Sender<MediaCommand>,用于向后台发送指令。update_rx: 一个Receiver<MediaUpdate>,用于接收来自后台的状态更新和事件。
- 你可以在一个独立的线程中循环监听
update_rx以接收实时更新。 - 通过
command_tx发送MediaCommand枚举中的指令来控制后台服务。 - 当你的应用退出时,务必调用
controller.shutdown()或发送一个MediaCommand::Shutdown来优雅地关闭后台线程。
示例
下面是一个简单的示例,演示如何启动服务、监听事件并最终关闭它。
use ;
use thread;
use Duration;
许可证
本项目采用 MIT 许可证。你可以随意使用本项目的任何代码。