Giter Club home page Giter Club logo

Comments (7)

jan-ivar avatar jan-ivar commented on July 19, 2024

We should define "video conference". It's sole mention is "EXAMPLE 6: Using video conferencing actions:" (added in #269).

There's no mention of this category of actions' existence in the README, explainer, the spec itself, or use cases. Nor do their existence flow naturally from those narratives, which center on control over consumption of "media" (with metadata such as title, artist, album and album art).

I think the best I can say is that extending "media keys" to control media the user also produces makes some sense.

I would expect the spec and explainer to start with the specific use cases to be solved, and define the concepts needed to help implementers route actions to the correct place. This would also help the WG define better criteria for what's in or out.

On concepts

The assumption seems to be that an active media session may be a video conferencing session. That seems a bit of a stretch already (who's the artist?), but for most of us (and let's face it most meetings), treating the corporate online video meeting and AURORA - Runaway the same seems appealing, at least for the consumption part.

Except, it's not.

If I "pause" AURORA, she picks up singing where she left off. I can't "pause" my boss. I miss out.

I can't pause, seek and skip ads in a live video conference. Users might wish to "mute" from their lock screen, but there's no media session action for that. "Pause" is not "mute". A true "pause" would start buffering, taking the viewer out of "realtime" mode and into some semi-live streaming session.

So the overlap seems poor. Maybe things are either a media session or a video conferencing session? Then again, today's apps are neatly one or the other (media streaming vs webrtc), but tomorrow's apps may blur this distinction more.

Also, sometimes there may be several sessions in play: If I'm presenting and playing a youtube video to the audience, then there are at least two media sessions:

  1. the youtube video I'm presenting, and
  2. the video conference session

In this example, it would make sense for pause, seek and skipad to go to 1, whereas togglecamera/mic and hangup to 2.

To add to the complexity, more than one web origin may be involved in presentations (but not necessarily).

from mediasession.

jan-ivar avatar jan-ivar commented on July 19, 2024

In this example, it would make sense for pause, seek and skipad to go to 1, whereas togglecamera/mic and hangup to 2.

Interestingly, if we add "nextslide" and "previousslide" to this #274, they should go to 1.

So I suspect there may be 3 sessions here:

  • active media consumption session (1)
  • active video conferencing session (2)
  • active presentation session (1)

This would allow for presentation controls even for presentations done the old fashioned way (no video conference).

from mediasession.

youennf avatar youennf commented on July 19, 2024

Having a concept of a video conference session and allowing a web application to declare itself as having a video conference session might have some benefit.

One use case I see is that on iOS we could set the AudioSession PlayAndRecord category when web application declares having a VC session. Currently on WebKit, this is done when microphone capture starts, which has some drawbacks (system audio level might change while remote audio is already rendering).

In this example, it would make sense for pause, seek and skipad to go to 1, whereas togglecamera/mic and hangup to 2.

To add to the complexity, more than one web origin may be involved in presentations (but not necessarily).

It is interesting to think both in terms of keyboard and PiP window UI.
Automatic UA routing is indeed one possibility we should explore and seems to work great for keyboard.
Another approach is to let sessions provide routing information to the UA, for instance by declaratively telling UA to forward specific actions to the capturee. This seems well suited in case the PiP window UI is customised according which actions are registered.

from mediasession.

chrisn avatar chrisn commented on July 19, 2024

There's no mention of this category of actions' existence in the README, explainer, the spec itself, or use cases.

I have filed #281 to track updating the explainer.

from mediasession.

chrisn avatar chrisn commented on July 19, 2024

It does seem that adding a video conference session concept would be useful, which could then be used to clarify the routing definition in the spec - even if we don't end up adding previous/next slide actions to MediaSession.

from mediasession.

jan-ivar avatar jan-ivar commented on July 19, 2024

The current spec conflates routing with API: "The user agent MUST select at most one of the MediaSession objects to present to the user, which is called the active media session."

By this logic, adding an "active video conferencing session" implies we add a new VideoConferencingSession API #282, which has some advantages (e.g. no artist).

But this would also cause backwards compatibility issues since it would mean togglemicrophone, togglecamera, and hangup are on the wrong API today.

In theory at least, we could maybe solve routing and API separately, if we wanted to keep everything under MediaSession. I.e. the "active video conferencing session" and "active media session" could point to different MediaSession objects.

I don't have an opinion yet, just wanted to enumerate the options I see.

from mediasession.

jan-ivar avatar jan-ivar commented on July 19, 2024

From yesterday's meeting:

We're already doing it in Chrome when we send actions to media sessions that are not the current active one.

I looked, and the spec doesn't seem to allow this. The handle media session action steps only say to: "Run the activation notification steps in the browsing context associated with the active media session."

If this discrepancy is limited totogglemicrophone, togglecamera and hangup, then (conservatively) defining a new "active media capture session" might be the answer. This could still be a MediaSession to decouple discussion of routing from API. This session might be guided by microphone focus instead of audio focus.

If this discrepancy is not limited to those, we should capture that in the spec as well somehow.

from mediasession.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.