Merge tag 'v0.1' into develop
Initial public preview of RadioPlayer: a lightweight Custom Google Cast Receiver + desktop sidecar for playing a LIVE radio stream. Highlights Custom CAF Receiver UI (HTML/CSS/JS) with branded artwork and playback status Plays LIVE stream: https://live.radio1.si/Radio1MB (audio/mpeg, streamType: LIVE) Controls: Play / Stop / Volume via Cast sender Works on Nest Audio, Nest Hub/Hub Max, Chromecast, and speaker groups/stereo pairs (subject to sender capabilities) Sidecar improvements: robust launch flow (handles NOT_ALLOWED by stopping existing sessions and retrying) Included files index.html receiver.js (CAF Receiver initialization + LOAD interceptor for LIVE metadata) styles.css (dark/purple UI) logo.svg index.js (launch retry + metadata fixes) Important notes Receiver must be hosted over HTTPS for Cast Use Default Media Receiver for local testing; register a Custom Receiver App ID for production Sidecar uses castv2-client (not official Google sender SDK) — group behavior may vary No Node.js on receiver; no persistent storage guaranteed How to test (quick) Serve the receiver folder over HTTPS (e.g. mkcert + npx http-server). From sender, LOAD: contentId: https://live.radio1.si/Radio1MB contentType: audio/mpeg streamType: LIVE Known limitations UI is intentionally lightweight; some CSS effects may be limited on older devices Sender-side group handling may need the official sender SDK for full reliability If you want, I can draft the GitHub release body or a short changelog entry formatted for the Releases page.
This commit is contained in:
47
README.md
47
README.md
@@ -1,4 +1,4 @@
|
||||
# RadioCast
|
||||
# RadioPlayer
|
||||
|
||||
A lightweight, cross-platform radio player built with Tauri and Vanilla JavaScript. Features local playback and Google Cast integration.
|
||||
|
||||
@@ -13,10 +13,10 @@ Before you begin, ensure you have the following installed on your machine:
|
||||
## Installation
|
||||
|
||||
1. **Clone the repository**:
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd RadioCast
|
||||
```
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd RadioPlayer
|
||||
```
|
||||
|
||||
2. **Install dependencies**:
|
||||
```bash
|
||||
@@ -106,3 +106,40 @@ To change the default window size, edit `src-tauri/tauri.conf.json`:
|
||||
## License
|
||||
|
||||
[Add License Information Here]
|
||||
|
||||
|
||||
## Release v0.1
|
||||
|
||||
Initial public preview (v0.1) — a minimal, working RadioPlayer experience:
|
||||
|
||||
- Custom CAF Receiver UI (HTML/CSS/JS) in `receiver/` with branded artwork and playback status.
|
||||
- Plays LIVE stream: `https://live.radio1.si/Radio1MB` (contentType: `audio/mpeg`, streamType: `LIVE`).
|
||||
- Desktop sidecar (`sidecar/index.js`) launches the Default Media Receiver and sends LOAD commands; launch flow now retries if the device reports `NOT_ALLOWED` by stopping existing sessions first.
|
||||
|
||||
Included receiver files:
|
||||
|
||||
- `receiver/index.html`
|
||||
- `receiver/receiver.js` (CAF Receiver initialization + LOAD interceptor for LIVE metadata)
|
||||
- `receiver/styles.css`
|
||||
- `receiver/assets/logo.svg`
|
||||
|
||||
Quick testing notes
|
||||
|
||||
- The receiver must be served over HTTPS for Cast devices to load it. For quick local testing you can use `mkcert` + a static HTTPS server:
|
||||
|
||||
```bash
|
||||
# create local certs
|
||||
mkcert -install
|
||||
mkcert localhost
|
||||
|
||||
# serve the receiver folder over HTTPS
|
||||
npx http-server receiver -p 8443 -S -C localhost.pem -K localhost-key.pem
|
||||
```
|
||||
|
||||
- Use the Default Media Receiver App ID while developing, or register a Custom Receiver App in the Cast Developer Console and point its URL to your hosted `index.html` for production.
|
||||
|
||||
Sidecar / troubleshoot
|
||||
|
||||
- If a Cast launch fails with `NOT_ALLOWED`, the sidecar will now attempt to stop any existing sessions on the device and retry the launch (best-effort). Check sidecar logs for `Launch NOT_ALLOWED` and subsequent retry attempts.
|
||||
- Note: the sidecar uses `castv2-client` (not the official Google sender SDK). Group/stereo behavior may vary across device types — for full sender capabilities consider adding an official sender implementation.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user