You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#39 — PRD: AI Radio — Host-driven Channel experience with chat timeline
What to build
When the device has no network connection, activate the Offline Host — a fallback implementation of the Host Service interface that requires no API calls. Additionally, users retain the option to exit radio mode entirely and use classic (queue) playback for full manual control.
Offline Host behaviour:
On activation (network goes away, or loadChannel is called with no network), play a pre-bundled TTS audio file: "当前无网络连接,为你随机播放本地音乐。" — bundle this MP3/AAC file with the app
After that announcement Segment plays, generate subsequent Programmes by random-shuffling the CandidateSet — Tracks only, no Interludes
The chat timeline shows the announcement as a host announcement message; subsequent track-played entries appear as normal
Classic mode fallback:
While offline, the user can exit radio mode by manually selecting a track from the Library
This switches to classic (queue) mode with full manual control — same as online classic mode
Network detection: monitor connectivity; when connectivity is restored, the Programme Manager switches back to the real Host Service at the next Programme boundary (not mid-Programme).
The Radio Screen layout is identical in offline mode — no second UI, no mode indicator needed.
The Offline Host implements the same interface as the real Host Service (generateProgramme → Promise<Programme>), so the Programme Manager treats it transparently.
Acceptance criteria
When network is unavailable and a Channel is loaded, the pre-bundled TTS announcement plays first
Subsequent Programmes are random shuffles of the CandidateSet with no Interludes
The announcement appears in the chat timeline as a host announcement message
When network is restored, the real Host Service resumes at the next Programme boundary
Radio Screen layout is unchanged in offline mode
User can exit to classic mode while offline by playing a track from Library
Parent
#39 — PRD: AI Radio — Host-driven Channel experience with chat timeline
What to build
When the device has no network connection, activate the Offline Host — a fallback implementation of the Host Service interface that requires no API calls. Additionally, users retain the option to exit radio mode entirely and use classic (queue) playback for full manual control.
Offline Host behaviour:
loadChannelis called with no network), play a pre-bundled TTS audio file: "当前无网络连接,为你随机播放本地音乐。" — bundle this MP3/AAC file with the appannouncementmessage; subsequenttrack-playedentries appear as normalClassic mode fallback:
Network detection: monitor connectivity; when connectivity is restored, the Programme Manager switches back to the real Host Service at the next Programme boundary (not mid-Programme).
The Radio Screen layout is identical in offline mode — no second UI, no mode indicator needed.
The Offline Host implements the same interface as the real Host Service (
generateProgramme → Promise<Programme>), so the Programme Manager treats it transparently.Acceptance criteria
announcementmessageBlocked by