Giter Club home page Giter Club logo

Comments (8)

avayvod avatar avayvod commented on August 18, 2024

IIRC it could also receive media keys events (e.g. for AudioContext) and have metadata set on it.

from mediasession.

foolip avatar foolip commented on August 18, 2024

It doesn't do much beyond the content attribute at this point. Beyond what Anton points out, it will also allow us to group multiple media elements in a single media session to do playlists that don't lose audio focus and key events in between tracks.

We're also undecided about how to deal with the Web Audio API. One option is to connect AudioContext directly to MediaSession just like HTMLMediaElement. Even if that doesn't happen, I think making the session concept explicit is the right way to go.

from mediasession.

esprehn avatar esprehn commented on August 18, 2024

It seems like it should be retrieved from a separate interface though, getMediaSession(kind) or MediaSession.get(kind) instead of coming from a tearoff property of the HTMLMediaElement. It seems very weird that to get a handle on the session for a kind I need to create an element and set the kind so I can then release all the media elements in that session kind.

from mediasession.

foolip avatar foolip commented on August 18, 2024

I think simply allowing new MediaSession(kind) would work.

from mediasession.

richtr avatar richtr commented on August 18, 2024

I agree we should expose a MediaSession constructor and make the proposed session attribute on HTMLMediaElement settable.

That is to say, I think it should work like MediaController, <audio> and <video> mediagroup content attributes and the HTMLMediaElement.controller attribute: allow web developers to bind a media session to an <audio> or <video> element declaratively through HTMLMediaSession.kind and also allow developers to create new MediaSession objects and assign them to HTMLMediaElement.session programmatically too.

from mediasession.

richtr avatar richtr commented on August 18, 2024

Just to clarify the following:

It seems very weird that to get a handle on the session for a kind I need to create an element and set the kind so I can then release all the media elements in that session kind.

Media sessions are currently scoped per-element in the spec (not grouped by media category per-tab). Releasing one media element's media session will not release any other media element's media session. The situation you cite is currently impossible to produce according to the spec.

from mediasession.

richtr avatar richtr commented on August 18, 2024

We've added a MediaSession constructor and made HTMLMediaElement.session settable in f9ec89d.

The spec also now lets you assign multiple media elements to the same media session. That wasn't possible before (except for default media sessions).

from mediasession.

richtr avatar richtr commented on August 18, 2024

So in addition to the behavior described in the OP above, MediaSession now also allows a web developer to group multiple media elements within a single media session.

As also discussed there are future plans to expose more functionality on MediaSession such as e.g. metadata, media key events and attributes to further tweak individual media session characteristics.

Let's close this issue given the desire to expose media session as a concept to web developers, the additions we have made since this issue was opened, and the proposals suggested to introduce future media session-related features on this interface.

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.