7个版本 (3个稳定版)

2.0.0 2023年9月16日
1.1.0 2021年1月15日
1.0.0 2020年12月23日
0.1.3 2020年8月8日
0.1.2 2020年4月28日

#424 in 异步

Download history 16/week @ 2024-05-13 8/week @ 2024-05-20 13/week @ 2024-05-27 12/week @ 2024-06-03 10/week @ 2024-06-10 4/week @ 2024-06-17 8/week @ 2024-06-24 2/week @ 2024-07-08 5/week @ 2024-07-15 11/week @ 2024-07-22 42/week @ 2024-07-29 8/week @ 2024-08-05 24/week @ 2024-08-12

每月85次下载
用于 sinuous

MIT 许可证

42KB
879 代码行

GitHub last commit Crates.io

这个crate是一个用Rust编写的Sonos控制器库。它异步操作,并旨在提供简单易用且功能强大的API。

示例

let speaker = sonor::find("your room name", Duration::from_secs(2)).await?
    .expect("room exists");

println!("The volume is currently at {}", speaker.volume().await?);

match speaker.track().await? {
    Some(track_info) => println!("- Currently playing '{}", track_info.track()),
    None => println!("- No track currently playing"),
}

speaker.clear_queue().await?;

speaker.join("some other room").await?;

查看实现的所有操作的完整列表,请参阅Speaker文档。

如果您的用例未被覆盖,此crate还公开了原始UPnP Action API 此处。它可以这样使用

use sonor::URN;

let service = URN::service("schemas-upnp-org", "GroupRenderingControl", 1);
let args = "<InstanceID>0</InstanceID>";
let response = speaker.action(&service, "GetGroupMute", args).await?;

println!("{}", response["CurrentMute"]);

依赖项

~5–14MB
~170K SLoC