-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple controllers of remote playback #149
Comments
We can allow agents to connect to an existing session without modifying Remote Playback API. It'd allow controlling playback from browser UI, for example. I think we'd want those agents to be able to stop the session, so it'd make sense to just allow full control. Related: do we want a request message to terminate a session regardless of its type (Presentation, Remote Playback, or streaming)? If we were to allow creating sessions that can refuse to be controlled by other senders, who should be able to specify this? The controlling page, the controlling agent, or the receiving agent? If we want to let web pages connect to an existing session, we have a few options to do this:
Questions:
|
I doubt that's worth it. Having separate messages seems easy enough.
Ultimately, the receiver chooses who it will allow to control it, so I'd say the receiver. But the initial controller could ask the receiver to do so, and the controlling agent may allow a controller page to ask it to ask the receiver to do so.
Would that be using a blank/empty HtmlMediaElement? Seems like surprising/confusing overloaded behavior.
On a blank/empty HtmlMediaElement? What if it's not empty? Does it change the source of the remote element? Does this need an ID to refer to? I'm in favor of this API over using prompt().
What can Presentations do right now?
I would say yes. |
Maybe there can be two methods: one that always uses the controller's source, and another method that overwrites the local element with the receiver's media, if there already exists a session. This would let the site choose the behavior. Alternatively, prompt() can handle all the cases, and the user can choose in the UA's UI which source to use. Then the controller page would know which by looking at the currentSrc (or src?) This would let the user choose the behavior. We need to handle cases where we're using the receiver's source and the media types are different (<audio> vs <video>) between the controller and receiver elements. We can require the controller UA to prevent such reconnects, or throw an error. I think the former is a better UX.
It requires that the reconnecting PresentationRequest already knows the receiver's URL: "Its presentation URL is equal to one of the presentation request URLs of presentationRequest". Its Remote Playback equivalent would be for the HTMLMediaElement to already have the media URL (or just the origin?) as a source, which I don't think is practical. |
That's an option. Another is one method with a good default (like pull is default and push is an opt-in override parameter). The more I think about it, the more I think push is a better default and if you want pull, just clear your own source before you remote, or make a blank one. So I think I like "one method with push".
That sounds too complex from a UX perspective.
I think preventing reconnects make sense.
Oh, that's interesting. In that case, we wouldn't have to deal with push vs. pull. But why would this be impractical for remote playback but not for Presentation API? |
I think this is an interesting topic. An agent could get a However, for the first case (browser control), I would lean towards defining a different protocol that is closer in alignment to the Media Session API as remote controls shouldn't depend on where the remote media comes from (local app, presentation, remote playback, mirroring, etc.) I will file a v2 issue for this. For the second case (site reconnection), it will require some modifications to the Remote Playback API - I don't think we can swap out a site's media element with a remote playback without its involvement. I suggest continuing discussion in w3c/remote-playback#5. |
Can we allow for multiple controllers of a remote playback session like we allow for presentations? If so, what would that protocol look like? What controls would be allowed?
The text was updated successfully, but these errors were encountered: