#chromecast #cast #google #api-bindings

rust_cast

允许您与 Google Cast 兼容设备(例如 Chromecast)通信的库。

23 个版本 (15 个破坏性更新)

0.19.0 2024 年 5 月 5 日
0.18.1 2023 年 1 月 15 日
0.17.0 2022 年 3 月 20 日
0.16.0 2021 年 1 月 10 日
0.8.1 2016 年 7 月 29 日

#15 in 多媒体

Download history 357/week @ 2024-05-04 219/week @ 2024-05-11 258/week @ 2024-05-18 305/week @ 2024-05-25 326/week @ 2024-06-01 290/week @ 2024-06-08 331/week @ 2024-06-15 268/week @ 2024-06-22 241/week @ 2024-06-29 242/week @ 2024-07-06 310/week @ 2024-07-13 188/week @ 2024-07-20 626/week @ 2024-07-27 375/week @ 2024-08-03 323/week @ 2024-08-10 501/week @ 2024-08-17

1,858 每月下载次数

MIT 许可证

185KB
4K SLoC

Docs Build Status

用法

构建

Proto 文件来自 Chromium Open Screen GitHub 镜像

默认情况下,cargo build 不会尝试从位于 protobuf/* 的文件生成 Rust 代码,如果您想这样做,请在构建期间使用 GENERATE_PROTO 环境变量,并确保您有 protoc 二进制文件在 $PATH

$ GENERATE_PROTO=true cargo build

运行示例

通用功能

首先,您需要确定要连接的设备的地址。例如,您可以使用以下命令使用 avahi

$ avahi-browse -a --resolve
// Get some info about the Google Cast enabled device (e.g. Chromecast). 
$ cargo run --example rust_caster -- -a 192.168.0.100 -i

Number of apps run: 1
App#0: Default Media Receiver (CC1AD845)
Volume level: 1
Muted: false

// Run specific app on the Chromecast.
$ cargo run --example rust_caster -- -a 192.168.0.100 -r youtube

// Stop specific active app.
$ cargo run --example rust_caster -- -a 192.168.0.100 -s youtube

// Stop currently active app.
$ cargo run --example rust_caster -- -a 192.168.0.100 --stop-current

The following app has been stopped: Default Media Receiver (CC1AD845)

媒体功能

// Stream a video.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4

// Stream a video of specific format with buffering.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m http://xxx.webm --media-type video/webm --media-stream-type buffered

// Stream video from YouTube (doesn't work with the latest YouTube app, fix is welcome).
$ cargo run --example rust_caster -- -a 192.168.0.100 -m 7LcUOEP7Brc --media-app youtube

// Display an image.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m https://azasypkin.github.io/style-my-image/images/mozilla.jpg

// Change volume level.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-volume 0.5

// Mute/unmute media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-mute [--media-unmute]

// Pause media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-pause

// Resume/play media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-play

// Seek media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-seek 100

有关 --media-type 的所有可能值的详细信息,请参阅 Google Cast 支持的媒体

DNS TXT 记录描述

  • md - 型号名称(例如 "Chromecast");
  • id - 特定设备的无连字符 UUID(例如 xx12x3x456xx789xx01xx234x56789x0);
  • fn - 设备的友好名称(例如 "Living Room");
  • rs - 未知(例如 "Youtube TV");
  • bs - 未知(例如 "XX1XXX2X3456");
  • st - 未知(例如 "1");
  • ca - 未知(例如 "1234");
  • ic - 图标路径(例如 "/setup/icon.png");
  • ve - 版本(例如 "04")。

型号名称

  • Chromecast - 标准 Chromecast,支持视频/音频;
  • Chromecast Audio - Chromecast Audio 设备,仅支持音频。

有用的链接和灵感来源

依赖项

~10-20MB
~362K SLoC