After a drop, it must be clear which device owns the state
Aliases: cast disconnect · session ownership · playback handoff
What it is
The film is on the television; someone walks into another room and the phone falls out of range, or a meeting ends and the cable comes out. Does the TV keep playing, freeze on the last frame, return home, or hand progress back so the phone continues at the ear? Ownership after disconnect has to be settled at the drop: which device now owns playback, progress, volume, and the queue. YouTube cast often lets the TV keep going, the phone merely losing its remote. A mirror dying takes the picture with it, because the source stopped sending frames. The same “disconnect” has opposite endings in the two structures. Unlabeled, it looks like a crashed TV, or like the phone will start talking in a pocket.
Why it happens
A cast session has an authority: on independent playback the receiver is authority and the source is a controller; on a mirror the source is authority and the receiver is a display. Disconnect cuts the channel. It does not elect a new authority. Without a rule both sides guess: the receiver keeps a locally buffered stream while the source also resumes from the same position—one sound becomes two; or both stop, and progress lives in only one device’s memory, so the next open jumps backward. At the moment of the drop people are walking or packing; they will not open settings. The rule has to fit in that instant’s UI: “the TV will keep playing,” “picture is back on this phone,” “progress is saved; continue elsewhere.” Whoever owns progress writes the next resume; whoever owns the audio/video sink decides whether sound continues now.
Where it stops holding
If the source dies of battery or a forced shutdown, it cannot show copy; the receiver needs its own default (play to the end of the episode / stop now) written on its screen. A meeting-room receiver must clear picture and account when the session ends; ownership yields to privacy clearing rather than playing the film into the next meeting. Live streams have no “save progress and finish at home”; disconnect is stop, or the receiver stays on the live head. Phone-to-car Bluetooth audio has its own routing conventions; living-room cast rules do not transfer.
Applying it
- Write a disconnect default per structure: independent cast keeps playing on the receiver and shows “phone left, TV continues”; mirroring stops on the receiver immediately and restores the local picture on the source.
- Offer the opposite as a one-shot choice (“stop on the TV,” “bring it back to the phone”), chosen before the drop or in a few-second undo window after.
- Let only one authority write progress: TV writes if it keeps playing, phone writes if playback comes home. Do not let both start from the same position.
- Verify by casting an episode and walking the phone out of range. The TV should continue or stop as declared, and the phone must not make sound in a pocket. Then mirror a photo and close the source app: the TV must not keep the last frame, and the source must not start a second playback.