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-availability "available" / "unavailable" Whether multiple renditions are available.
media-quality-radio-group[data-availability="unavailable"] {
  display: none;
}

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

Prop Type Default Details
disabled boolean false
formatRendition function formatRenditionLabel
label string | function ''

State

State is reflected as data attributes for CSS styling.

Property Type Details
renditions QualityRadioGroupRendition[]
autoLabel string
value string
disabled boolean
availability 'available' | 'unavailable'
label string

Data attributes

Attribute Type Details
data-quality string
data-disabled
data-availability 'available' | 'unavailable'