Skip to content
FrameworkStyle

media-quality-radio-group

A menu radio group for selecting video quality

Creates radio items from the player video rendition state and selects automatic or manual quality.

Anatomy

<media-quality-radio-group>
  <template>
    <media-menu-radio-item>
      <span data-part="label"></span>
      <span data-part="tier"></span>
      <span data-part="badge"></span>
      <media-menu-item-indicator></media-menu-item-indicator>
    </media-menu-radio-item>
  </template>
</media-quality-radio-group>

Behavior

The group is available when the configured media exposes more than one video rendition. The first generated option is Auto; selecting it returns control to adaptive bitrate selection. Pass formatRendition to customize visible rendition labels.

<media-quality-radio-group> generates <media-menu-radio-item> children. Add an optional <template> with a single <media-menu-radio-item> to customize each generated item.

Styling

Attribute Values Description
data-quality string Current quality value.
data-disabled Present / absent Present when quality selection is disabled.
data-hidden Present / absent Present when multiple renditions are unavailable.
data-availability "available" / "unavailable" Whether multiple renditions are available.

Unavailable groups receive the native hidden attribute.

Accessibility

The group uses the menu radio group pattern.

The element receives an accessible label from the label property or defaults to Quality.

Examples

Basic usage

<video-player class="video-player">
    <media-container>
        <hlsjs-video
            class="video-media"
            src="https://stream.mux.com/lhnU49l1VGi3zrTAZhDm9LUUxSjpaPW9BL4jY25Kwo4.m3u8"
            autoplay
            crossorigin="anonymous"
            muted
            playsinline
            loop
        ></hlsjs-video>
        <div class="menu-bar">
            <button type="button" commandfor="quality-menu" class="settings-trigger">Quality</button>
            <media-menu id="quality-menu" side="top" align="end" class="menu">
                <media-quality-radio-group class="menu-group" label="Quality">
                    <template>
                        <media-menu-radio-item class="menu-item">
                            <span>
                                <span data-part="label"></span>
                                <sup data-part="tier" class="menu-tier"></sup>
                            </span>
                            <span data-part="badge" class="menu-badge"></span>
                            <media-menu-item-indicator force-mount class="menu-indicator"></media-menu-item-indicator>
                        </media-menu-radio-item>
                    </template>
                </media-quality-radio-group>
            </media-menu>
        </div>
    </media-container>
</video-player>

API Reference

Props

PropTypeDefaultDetails
disabledbooleanfalse
formatRenditionText) | functionformatRenditionLabel
labelText | string | Text) | function''

State

State is reflected as data attributes for CSS styling.

PropertyTypeDetails
valuestring
optionsQualityRadioGroupOption[]
disabledboolean
hiddenboolean
availability'available' | 'unavailable'
labelText | string

Data attributes

AttributeTypeDetails
data-qualitystring
data-disabled
data-hidden
data-availability'available' | 'unavailable'