14 个版本 (破坏性更新)
0.11.3 | 2024 年 1 月 7 日 |
---|---|
0.10.0 | 2024 年 1 月 6 日 |
0.3.0 | 2023 年 12 月 31 日 |
#231 in GUI
49KB
839 行
Apple Music
一个用于完全控制本地 MacOS Apple Music 播放器的 Rust 库。
该 crate 通过 Rust 代码提供了控制 MacOS Apple Music 播放器的便捷方式。该 crate 的逻辑依赖于 Apple 的脚本 API,通过 osascript
CLI 和 JavaScript
脚本来实现。
安装
apple-music
可直接在 crates.io 上使用
cargo add apple-music
如何使用
在项目中导入库
use apple-music::AppleMusic;
库的入口点是 AppleMusic
。从那里,你可以
-
获取应用程序数据 -
AppleMusic::get_application_data();
->ApplicationData
-
获取当前曲目 -
AppleMusic::get_current_track();
->Track
- 曲目可以直接使用
- 喜欢/不喜欢曲目 -
track.set_loved(true);
或track.set_disliked(true);
- 下载曲目 -
track.download()
- 在播放器中显示曲目 -
track.reveal_in_player()
- 喜欢/不喜欢曲目 -
- 曲目可以直接使用
-
获取当前播放列表 -
AppleMusic::get_current_playlist();
->Playlist
- 播放列表可以直接使用
- 在播放列表中搜索歌曲 -
playlist.search_for_tracks(track_name)
->Vec<Track>
- 在播放器中显示播放列表 -
playlist.reveal_in_player()
- 下载播放列表 -
playlist.download()
- 在播放列表中搜索歌曲 -
- 播放列表可以直接使用
要控制播放器,您可以直接使用 AppleMusic
- 设置音量 -
AppleMusic::set_sound_volume(50);
- 更改歌曲 -
AppleMusic::next_track();
- 播放特定歌曲 -
AppleMusic::play_track(Track);
- 暂停 -
AppleMusic::pause();
- 退出应用程序 -
AppleMusic::quit();
这仅仅是可用API的一部分,甚至没有提到您可以访问的数据。
有关更多信息以及完整列表,请参阅文档!
示例
let playlist = &AppleMusic::get_playlist_by_id(1234).unwrap();
AppleMusic::play_playlist(playlist); // Apple Music player starts playing provided Playlist.
AppleMusic::set_shuffle(true); // Shuffle is now enabled on currently playing Playlist.
let track = playlist.fetch_playlist_tracks().unwrap()[5];
AppleMusic::play_track(track); // Apple Music player starts playing provided Track.
let current_track = AppleMusic::get_current_track().unwrap();
println!("{}", current_track.name()); // "An awesome song!"
println!("{}", current_track.artwork_url()); // Prints the direct url for the Artwork of the Track.
current_track.set_loved(true); // Track is now loved!
AppleMusic::next_track(); // Goes to next track.
let current_track = AppleMusic::get_current_track().unwrap();
current_track.reveal_in_player(); // Track is revealed and selected on Apple Music player.
current_track.set_disliked(true); // Track is now disliked!
AppleMusic::set_sound_volume(15); // Sets Player volume to 15.
playlist.download(); // Playlist is being downloaded on Apple Music player.
AppleMusic::quit(); // Quit Apple Music application on Mac.
限制
平台
此crate仅在MacOs上运行,并且仅与macOS 13.4.1和Apple Music 1.3.5进行了测试。
我将非常愿意为其他版本的MacOs / Apple Music提供支持,如果您遇到失败,请毫不犹豫地提出问题!
下一步
在v1.0之前
- 完成添加剩余的类和方法
添加()
导出()
刷新()
- 确保整个API都由此crate覆盖
依赖项
~6–23MB
~311K SLoC