1 个不稳定版本
0.1.0 | 2023年4月30日 |
---|
#175 在 Windows API 中
每月 26 次下载
在 yandex-music-discord-rpc 中使用
41KB
757 行
win-gsmtc
该库是Windows.Media.Control
命名空间(也称为GlobalSystemMediaTransportControls
- GSMTC)的包装器。它使用tokio
来管理内部工作进程,以提供更新。
示例
use gsmtc::{ManagerEvent::*, SessionUpdateEvent::*};
let mut rx = gsmtc::SessionManager::create().await?;
while let Some(evt) = rx.recv().await {
match evt {
SessionCreated {
session_id,
mut rx,
source,
} => {
println!("Created session: {{id={session_id}, source={source}}}");
tokio::spawn(async move {
while let Some(evt) = rx.recv().await {
match evt {
Model(model) => {
println!("[{session_id}/{source}] Model updated: {model:#?}")
}
Media(model, image) => println!(
"[{session_id}/{source}] Media updated: {model:#?} - {image:?}"
),
}
}
println!("[{session_id}/{source}] exited event-loop");
});
}
SessionRemoved { session_id } => println!("Session {{id={session_id}}} was removed"),
CurrentSessionChanged {
session_id: Some(id),
} => println!("Current session: {id}"),
CurrentSessionChanged { session_id: None } => println!("No more current session"),
}
}
依赖关系
~133MB
~2M SLoC