Comments (7)
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:
- the youtube video I'm presenting, and
- 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.
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.
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.
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.
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.
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.
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)
- Should we add a common repository for MediaSession actions and WebRTC capture handle actions? HOT 2
- Status of AudioFocus API HOT 4
- Privacy issue: is it a good idea to let webapps lie about camera/mic ON/OFF on a user's lock screen? HOT 4
- MediaSession API on Edge in showing ANY buttons when entering picture-in-picture HOT 2
- Update explainer with video conferencing actions HOT 1
- Dedicated video conference session API? HOT 2
- Add takephoto action to spec
- The active media session might not be the only one being notified of actions
- MediaSession as a user-constructible object don't work. HOT 1
- Media Session doesn't show artwork on iOS 16.1.1 HOT 3
- mediaSession.setActionHandler not working properly with more than one video element on Chrome HOT 2
- Show album art (song cover) using media session api with jsmediatags api.
- Make PiP mediaSession Mic and Camera icons always visible HOT 1
- EnterPictureInPicture MediaSessionAction HOT 2
- Notification buttons on the lock screen HOT 2
- Top issues for TPAC 2023 HOT 2
- Add WPT mediasession permission policy tests HOT 1
- Should the default mediasession permission policy value be self instead of * HOT 4
- MediaPositionState IDL does not allow infinite duration HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mediasession.