8个版本
| 0.2.5 | 2024年3月30日 |
|---|---|
| 0.2.4 | 2023年12月31日 |
| 0.1.2 | 2023年12月20日 |
#784 在 网络编程
32 每月下载量
35KB
692 行
Rusty-Sonos
一个用 Rust 编写的用于发现和交互 Sonos 扬声器的库。
特性
此库的主要功能是提供一个扬声器发现和扬声器操作的包装器。
发现
要发现当前网络上所有的扬声器,使用 discover_devices()。这将返回关于找到的任何扬声器的相关信息(包括IP地址)。内部使用SSDP协议。
要获取特定扬声器的信息,给定其IP地址,使用 get_speaker_info()。
扬声器交互
通过一个名为 Speaker 的单一结构体与扬声器交互,该结构体具有所有已实现的特性的方法。要使用 Speaker,你必须知道扬声器的IP地址(有关如何找到此信息,请参阅发现部分)
use rusty_sonos::speaker::Speaker;
use std::net::Ipv4Addr;
let ip_addr = Ipv4Addr::from_str("192.168.1.0").unwrap();
let speaker = Speaker::new(ip_addr).await.unwrap();
speaker.play().await.unwrap(); // plays the current track
以下提供了扬声器方法的不完整列表和描述
play:开始或继续播放当前曲目pause:暂停当前曲目的播放get_current_track:返回有关当前曲目的信息set_current_uri:从URI设置当前曲目get_volume:返回当前音量set_volume:将音量设置为给定值get_playback_status:获取播放状态(播放、暂停等)seek:从提供的曲目时间(hh:mm:ss)开始播放get_queue:返回队列中当前曲目enter_queue:进入队列add_track_to_queue:将曲目添加到队列move_to_next_track:跳转到下一曲目move_to_previous_track:跳转到上一曲目clear_queue:从队列中删除所有曲目end_external_control:结束由外部服务(如Spotify)对扬声器的控制
注意
通常,扬声器的API基于UPnP。
这些非官方文档被用来构建这个库。它们包含关于各种服务、端点和响应的信息。
依赖项
~3–14MB
~207K SLoC