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