feat: discover Chromecast receivers at startup
This commit is contained in:
@@ -105,7 +105,7 @@ The configurable URL action is now `open_stream` (formerly `open_youtube`); cust
|
||||
|
||||
### Chromecast
|
||||
|
||||
Open media, select the **Cast** icon or **Playback → Cast to Device → Find Cast Devices…**, and choose a receiver on the same LAN. Allow macOS Local Network access and incoming firewall connections. Terebi keeps the Mac awake during the handoff and active Cast playback while allowing the screensaver and display sleep once local playback stops. Keep the Mac connected: it relays media to the receiver. Closing the lid, explicitly sleeping the Mac or critical-battery sleep can still interrupt playback.
|
||||
Terebi starts Chromecast discovery automatically on launch. Open media, select the **Cast** icon or **Playback → Cast to Device**, and choose a receiver on the same LAN. Use **Find Cast Devices…** to retry discovery if needed. Allow macOS Local Network access and incoming firewall connections. Terebi keeps the Mac awake during the handoff and active Cast playback while allowing the screensaver and display sleep once local playback stops. Keep the Mac connected: it relays media to the receiver. Closing the lid, explicitly sleeping the Mac or critical-battery sleep can still interrupt playback.
|
||||
|
||||
Existing controls operate remote playback. **Play on This Mac** returns to local playback at the receiver's position without changing the local-file queue. Queue navigation and automatic advance keep the selected receiver; opening a replacement selection or different stream ends casting. Frame stepping and YouTube quality changes are local-only; live Cast playback is not seekable. Cast output is limited to 1080p/30 fps. The screen-and-triangle icon does not provide AirPlay support.
|
||||
|
||||
|
||||
@@ -177,6 +177,7 @@ final class PlayerModel: ObservableObject {
|
||||
MainActor.assumeIsolated { self?.poll() }
|
||||
}
|
||||
systemPlayback = SystemPlaybackControls(model: self)
|
||||
castDiscovery.start()
|
||||
}
|
||||
|
||||
var isBusy: Bool { castConnecting || (!casting.active && transition.isBusy(state.status)) }
|
||||
|
||||
Reference in New Issue
Block a user