iOS: sleep timer and AirPlay route picker #429

Closed
opened 2026-11-08 11:34:29 -08:00 by rays · 5 comments
Owner

A sleep timer in the player, and AVRoutePickerView for choosing the speaker, each a button in the page with a bridge message (web/src/native.ts, ios/Sources/Bridge.swift).

A sleep timer in the player, and AVRoutePickerView for choosing the speaker, each a button in the page with a bridge message (web/src/native.ts, ios/Sources/Bridge.swift).
rays added the enhancement label 2026-11-08 11:34:29 -08:00
Author
Owner

Done in 2e03176, in TestFlight build 7; the page part needs an ipx-web deploy.

  • Sleep timer (5 min to 1 hour) in the player bar, fading out over the last 10 s. In the app the phone's player keeps the time, so it fires with the screen locked; in a browser the page does. Verified in the simulator: set 3 s into play with a 12 s timer, the app paused at 15 s and the page's label went back to Sleep.
  • AirPlay button, shown in the app (once the app says at ready it has a picker) and in Safari. It presses AVRoutePickerView's button from code (primary action on iOS 27). Not verified: the simulator has no AirPlay devices and showed no picker. If it does nothing on a phone, the fallback is a real AVRoutePickerView laid over the page's button.
  • On a phone the title gets the player's top line; sleep, speed, AirPlay and DeadAir flank the play buttons below.
  • The app now says what it can do at ready ({t:"host", can}), so either deploy order works from here.
Done in 2e03176, in TestFlight build 7; the page part needs an ipx-web deploy. - Sleep timer (5 min to 1 hour) in the player bar, fading out over the last 10 s. In the app the phone's player keeps the time, so it fires with the screen locked; in a browser the page does. Verified in the simulator: set 3 s into play with a 12 s timer, the app paused at 15 s and the page's label went back to Sleep. - AirPlay button, shown in the app (once the app says at ready it has a picker) and in Safari. It presses AVRoutePickerView's button from code (primary action on iOS 27). Not verified: the simulator has no AirPlay devices and showed no picker. If it does nothing on a phone, the fallback is a real AVRoutePickerView laid over the page's button. - On a phone the title gets the player's top line; sleep, speed, AirPlay and DeadAir flank the play buttons below. - The app now says what it can do at ready ({t:"host", can}), so either deploy order works from here.
Author
Owner

The page's side of 2e03176 (sleep timer, AirPlay button in the app) is deployed in ipx-web, 2026-11-08. The Swift side is not built or checked here.

The page's side of 2e03176 (sleep timer, AirPlay button in the app) is deployed in ipx-web, 2026-11-08. The Swift side is not built or checked here.
Author
Owner

ipx-web deployed at Tower on 2026-11-08 with this; waiting on a check on the phone with build 8.

ipx-web deployed at Tower on 2026-11-08 with this; waiting on a check on the phone with build 8.
Author
Owner

AirPlay confirmed on the phone: the page's button opens the system picker (primary action on AVRoutePickerView's button). Sleep timer with the screen locked still to check.

AirPlay confirmed on the phone: the page's button opens the system picker (primary action on AVRoutePickerView's button). Sleep timer with the screen locked still to check.
Author
Owner

Checked on the phone with TestFlight build 14: works.

Checked on the phone with TestFlight build 14: works.
rays closed this issue 2026-11-13 05:44:14 -08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipx#429