@hanifhan1f/vidstack 1.12.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.templates/sandbox/favicon-32x32.png +0 -0
- package/.templates/sandbox/index.html +42 -0
- package/.templates/sandbox/main.ts +137 -0
- package/.templates/sandbox/styles.css +68 -0
- package/LICENSE +21 -0
- package/README.md +22 -0
- package/analyze.config.ts +133 -0
- package/build/build-styles.js +33 -0
- package/build/rollup-decorators.ts +102 -0
- package/build/rollup-minify.js +20 -0
- package/build/rollup-ts.js +57 -0
- package/npm/analyze.json.d.ts +8 -0
- package/npm/bundle.d.ts +1 -0
- package/npm/dom.d.ts +91 -0
- package/npm/empty.vtt +1 -0
- package/npm/google-cast.d.ts +1422 -0
- package/npm/player/index.d.ts +3 -0
- package/npm/player/layouts/default.d.ts +3 -0
- package/npm/player/layouts/index.d.ts +3 -0
- package/npm/player/layouts/plyr.d.ts +3 -0
- package/npm/player/ui.d.ts +3 -0
- package/npm/tailwind.cjs +101 -0
- package/npm/tailwind.d.cts +15 -0
- package/package.json +283 -0
- package/rollup.config.ts +442 -0
- package/src/components/aria/announcer.ts +181 -0
- package/src/components/layouts/default/audio-layout.ts +20 -0
- package/src/components/layouts/default/context.ts +15 -0
- package/src/components/layouts/default/default-layout.ts +67 -0
- package/src/components/layouts/default/props.ts +143 -0
- package/src/components/layouts/default/translations.ts +70 -0
- package/src/components/layouts/default/video-layout.ts +20 -0
- package/src/components/layouts/plyr/context.ts +13 -0
- package/src/components/layouts/plyr/plyr-layout.ts +90 -0
- package/src/components/layouts/plyr/props.ts +114 -0
- package/src/components/layouts/plyr/translations.ts +53 -0
- package/src/components/player.ts +758 -0
- package/src/components/provider/provider.ts +184 -0
- package/src/components/provider/source-select.ts +378 -0
- package/src/components/provider/tracks.ts +37 -0
- package/src/components/ui/buttons/airplay-button.ts +74 -0
- package/src/components/ui/buttons/caption-button.ts +68 -0
- package/src/components/ui/buttons/fullscreen-button.ts +90 -0
- package/src/components/ui/buttons/google-cast-button.ts +75 -0
- package/src/components/ui/buttons/live-button.ts +76 -0
- package/src/components/ui/buttons/mute-button.ts +69 -0
- package/src/components/ui/buttons/pip-button.ts +71 -0
- package/src/components/ui/buttons/play-button.ts +62 -0
- package/src/components/ui/buttons/seek-button.ts +92 -0
- package/src/components/ui/buttons/toggle-button-controller.ts +92 -0
- package/src/components/ui/buttons/toggle-button.ts +49 -0
- package/src/components/ui/captions/captions-renderer.ts +63 -0
- package/src/components/ui/captions/captions.ts +227 -0
- package/src/components/ui/controls-group.ts +13 -0
- package/src/components/ui/controls.ts +101 -0
- package/src/components/ui/gesture.ts +252 -0
- package/src/components/ui/menu/menu-button.ts +95 -0
- package/src/components/ui/menu/menu-context.ts +27 -0
- package/src/components/ui/menu/menu-focus-controller.ts +205 -0
- package/src/components/ui/menu/menu-item.ts +9 -0
- package/src/components/ui/menu/menu-items.ts +129 -0
- package/src/components/ui/menu/menu-portal.ts +105 -0
- package/src/components/ui/menu/menu.ts +612 -0
- package/src/components/ui/menu/radio/radio-controller.ts +18 -0
- package/src/components/ui/menu/radio/radio-group-controller.ts +81 -0
- package/src/components/ui/menu/radio/radio-group.ts +78 -0
- package/src/components/ui/menu/radio/radio.ts +151 -0
- package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +116 -0
- package/src/components/ui/menu/radio-groups/audio-radio-group.ts +121 -0
- package/src/components/ui/menu/radio-groups/captions-radio-group.ts +153 -0
- package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +211 -0
- package/src/components/ui/menu/radio-groups/quality-radio-group.ts +181 -0
- package/src/components/ui/menu/radio-groups/speed-radio-group.ts +112 -0
- package/src/components/ui/popper/popper.ts +103 -0
- package/src/components/ui/poster.ts +187 -0
- package/src/components/ui/sliders/audio-gain-slider.ts +150 -0
- package/src/components/ui/sliders/quality-slider.ts +148 -0
- package/src/components/ui/sliders/slider/api/cssvars.ts +10 -0
- package/src/components/ui/sliders/slider/api/events.ts +65 -0
- package/src/components/ui/sliders/slider/api/state.ts +101 -0
- package/src/components/ui/sliders/slider/events-controller.ts +383 -0
- package/src/components/ui/sliders/slider/format.ts +12 -0
- package/src/components/ui/sliders/slider/slider-context.ts +18 -0
- package/src/components/ui/sliders/slider/slider-controller.ts +211 -0
- package/src/components/ui/sliders/slider/slider.ts +94 -0
- package/src/components/ui/sliders/slider/types.ts +1 -0
- package/src/components/ui/sliders/slider/utils.ts +14 -0
- package/src/components/ui/sliders/slider-preview.ts +131 -0
- package/src/components/ui/sliders/slider-thumbnail.ts +28 -0
- package/src/components/ui/sliders/slider-value.ts +122 -0
- package/src/components/ui/sliders/slider-video.ts +198 -0
- package/src/components/ui/sliders/speed-slider.ts +147 -0
- package/src/components/ui/sliders/time-slider/slider-chapters.ts +444 -0
- package/src/components/ui/sliders/time-slider/time-slider.ts +319 -0
- package/src/components/ui/sliders/volume-slider.ts +145 -0
- package/src/components/ui/thumbnails/thumbnail-loader.ts +324 -0
- package/src/components/ui/thumbnails/thumbnail.ts +244 -0
- package/src/components/ui/time.ts +191 -0
- package/src/components/ui/tooltip/tooltip-content.ts +105 -0
- package/src/components/ui/tooltip/tooltip-context.ts +13 -0
- package/src/components/ui/tooltip/tooltip-trigger.ts +49 -0
- package/src/components/ui/tooltip/tooltip.ts +127 -0
- package/src/core/api/media-attrs.ts +35 -0
- package/src/core/api/media-context.ts +52 -0
- package/src/core/api/media-events.ts +601 -0
- package/src/core/api/media-request-events.ts +323 -0
- package/src/core/api/player-controller.ts +10 -0
- package/src/core/api/player-events.ts +49 -0
- package/src/core/api/player-props.ts +233 -0
- package/src/core/api/player-state.ts +940 -0
- package/src/core/api/src-types.ts +97 -0
- package/src/core/api/types.ts +69 -0
- package/src/core/controls.ts +251 -0
- package/src/core/font/font-options.ts +106 -0
- package/src/core/font/font-vars.ts +107 -0
- package/src/core/keyboard/aria-shortcuts.ts +42 -0
- package/src/core/keyboard/controller.ts +302 -0
- package/src/core/keyboard/types.ts +40 -0
- package/src/core/quality/events.ts +48 -0
- package/src/core/quality/symbols.ts +8 -0
- package/src/core/quality/utils.ts +13 -0
- package/src/core/quality/video-quality.ts +86 -0
- package/src/core/state/media-events-logger.ts +67 -0
- package/src/core/state/media-load-controller.ts +40 -0
- package/src/core/state/media-player-delegate.ts +170 -0
- package/src/core/state/media-request-manager.ts +952 -0
- package/src/core/state/media-state-manager.ts +1077 -0
- package/src/core/state/media-state-sync.ts +162 -0
- package/src/core/state/media-storage.ts +196 -0
- package/src/core/state/navigator-media-session.ts +62 -0
- package/src/core/state/remote-control.ts +584 -0
- package/src/core/state/tracked-media-events.ts +22 -0
- package/src/core/time-ranges.ts +130 -0
- package/src/core/tracks/audio/audio-tracks.ts +33 -0
- package/src/core/tracks/audio/events.ts +41 -0
- package/src/core/tracks/text/events.ts +52 -0
- package/src/core/tracks/text/render/libass-text-renderer.ts +246 -0
- package/src/core/tracks/text/render/native-text-renderer.ts +106 -0
- package/src/core/tracks/text/render/text-renderer.ts +134 -0
- package/src/core/tracks/text/symbols.ts +17 -0
- package/src/core/tracks/text/text-track.test.ts +407 -0
- package/src/core/tracks/text/text-track.ts +413 -0
- package/src/core/tracks/text/text-tracks.ts +210 -0
- package/src/core/tracks/text/utils.ts +85 -0
- package/src/elements/bundles/cdn/player.core.ts +6 -0
- package/src/elements/bundles/cdn/player.ts +8 -0
- package/src/elements/bundles/cdn/plyr.ts +6 -0
- package/src/elements/bundles/cdn-legacy/player-with-default.ts +4 -0
- package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +4 -0
- package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +3 -0
- package/src/elements/bundles/cdn-legacy/player.ts +3 -0
- package/src/elements/bundles/icons.ts +3 -0
- package/src/elements/bundles/player-layouts/default.ts +7 -0
- package/src/elements/bundles/player-layouts/index.ts +9 -0
- package/src/elements/bundles/player-layouts/plyr.ts +65 -0
- package/src/elements/bundles/player-ui.ts +108 -0
- package/src/elements/bundles/player.ts +7 -0
- package/src/elements/define/announcer-element.ts +20 -0
- package/src/elements/define/buttons/airplay-button-element.ts +21 -0
- package/src/elements/define/buttons/caption-button-element.ts +22 -0
- package/src/elements/define/buttons/fullscreen-button-element.ts +22 -0
- package/src/elements/define/buttons/google-cast-button-element.ts +21 -0
- package/src/elements/define/buttons/live-button-element.ts +22 -0
- package/src/elements/define/buttons/mute-button-element.ts +23 -0
- package/src/elements/define/buttons/pip-button-element.ts +22 -0
- package/src/elements/define/buttons/play-button-element.ts +23 -0
- package/src/elements/define/buttons/seek-button-element.ts +26 -0
- package/src/elements/define/buttons/toggle-button-element.ts +21 -0
- package/src/elements/define/captions-element.ts +20 -0
- package/src/elements/define/chapter-title-element.ts +54 -0
- package/src/elements/define/controls-element.ts +26 -0
- package/src/elements/define/controls-group-element.ts +26 -0
- package/src/elements/define/gesture-element.ts +24 -0
- package/src/elements/define/layouts/default/audio-layout-element.ts +137 -0
- package/src/elements/define/layouts/default/audio-layout.ts +113 -0
- package/src/elements/define/layouts/default/icons-loader.ts +17 -0
- package/src/elements/define/layouts/default/icons.ts +86 -0
- package/src/elements/define/layouts/default/slots.ts +12 -0
- package/src/elements/define/layouts/default/ui/announcer.ts +14 -0
- package/src/elements/define/layouts/default/ui/buttons.ts +291 -0
- package/src/elements/define/layouts/default/ui/captions.ts +14 -0
- package/src/elements/define/layouts/default/ui/controls.ts +5 -0
- package/src/elements/define/layouts/default/ui/keyboard-display.ts +114 -0
- package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +79 -0
- package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +135 -0
- package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +114 -0
- package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +117 -0
- package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +133 -0
- package/src/elements/define/layouts/default/ui/menu/font-menu.ts +253 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +67 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +108 -0
- package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +59 -0
- package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +56 -0
- package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +183 -0
- package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +98 -0
- package/src/elements/define/layouts/default/ui/slider.ts +112 -0
- package/src/elements/define/layouts/default/ui/time.ts +41 -0
- package/src/elements/define/layouts/default/ui/title.ts +25 -0
- package/src/elements/define/layouts/default/ui/utils.ts +10 -0
- package/src/elements/define/layouts/default/video-layout-element.ts +125 -0
- package/src/elements/define/layouts/default/video-layout.ts +353 -0
- package/src/elements/define/layouts/icons/icons-loader.ts +47 -0
- package/src/elements/define/layouts/icons/layout-icons-loader.ts +24 -0
- package/src/elements/define/layouts/layout-element.ts +78 -0
- package/src/elements/define/layouts/layout-name.ts +15 -0
- package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-download.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-muted.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-pause.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-pip.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-play.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-restart.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-settings.js +1 -0
- package/src/elements/define/layouts/plyr/icons/plyr-volume.js +1 -0
- package/src/elements/define/layouts/plyr/icons-loader.ts +21 -0
- package/src/elements/define/layouts/plyr/icons.ts +34 -0
- package/src/elements/define/layouts/plyr/plyr-layout-element.ts +67 -0
- package/src/elements/define/layouts/plyr/ui.ts +657 -0
- package/src/elements/define/layouts/slot-manager.ts +61 -0
- package/src/elements/define/layouts/slot-observer.ts +70 -0
- package/src/elements/define/menus/_template.ts +47 -0
- package/src/elements/define/menus/audio-gain-group-element.ts +37 -0
- package/src/elements/define/menus/audio-radio-group-element.ts +37 -0
- package/src/elements/define/menus/captions-radio-group-element.ts +37 -0
- package/src/elements/define/menus/chapters-radio-group-element.ts +68 -0
- package/src/elements/define/menus/menu-button-element.ts +27 -0
- package/src/elements/define/menus/menu-element.ts +28 -0
- package/src/elements/define/menus/menu-item-element.ts +24 -0
- package/src/elements/define/menus/menu-items-element.ts +27 -0
- package/src/elements/define/menus/menu-portal-element.ts +35 -0
- package/src/elements/define/menus/quality-radio-group-element.ts +51 -0
- package/src/elements/define/menus/radio-element.ts +24 -0
- package/src/elements/define/menus/radio-group-element.ts +24 -0
- package/src/elements/define/menus/speed-radio-group-element.ts +37 -0
- package/src/elements/define/player-element.ts +33 -0
- package/src/elements/define/poster-element.ts +53 -0
- package/src/elements/define/provider-cast-display.ts +36 -0
- package/src/elements/define/provider-element.ts +158 -0
- package/src/elements/define/sliders/audio-gain-slider-element.ts +34 -0
- package/src/elements/define/sliders/quality-slider-element.ts +34 -0
- package/src/elements/define/sliders/slider-chapters-element.ts +53 -0
- package/src/elements/define/sliders/slider-element.ts +25 -0
- package/src/elements/define/sliders/slider-preview-element.ts +16 -0
- package/src/elements/define/sliders/slider-steps-element.ts +50 -0
- package/src/elements/define/sliders/slider-thumbnail-element.ts +48 -0
- package/src/elements/define/sliders/slider-value-element.ts +49 -0
- package/src/elements/define/sliders/slider-video-element.ts +59 -0
- package/src/elements/define/sliders/speed-slider-element.ts +34 -0
- package/src/elements/define/sliders/time-slider-element.ts +34 -0
- package/src/elements/define/sliders/volume-slider-element.ts +34 -0
- package/src/elements/define/spinner-element.ts +96 -0
- package/src/elements/define/thumbnail-element.ts +63 -0
- package/src/elements/define/time-element.ts +32 -0
- package/src/elements/define/title-element.ts +38 -0
- package/src/elements/define/tooltips/tooltip-content-element.ts +28 -0
- package/src/elements/define/tooltips/tooltip-element.ts +28 -0
- package/src/elements/define/tooltips/tooltip-trigger-element.ts +32 -0
- package/src/elements/icon.ts +30 -0
- package/src/elements/index.ts +71 -0
- package/src/elements/lit/directives/signal.ts +80 -0
- package/src/elements/lit/html.ts +11 -0
- package/src/elements/lit/lit-element.ts +23 -0
- package/src/elements/state-controller.ts +48 -0
- package/src/exports/components.ts +79 -0
- package/src/exports/core.ts +41 -0
- package/src/exports/events.ts +46 -0
- package/src/exports/font.ts +3 -0
- package/src/exports/foundation.ts +8 -0
- package/src/exports/maverick.ts +9 -0
- package/src/exports/providers.ts +42 -0
- package/src/exports/utils.ts +18 -0
- package/src/foundation/fullscreen/controller.ts +128 -0
- package/src/foundation/fullscreen/events.ts +26 -0
- package/src/foundation/list/list.ts +127 -0
- package/src/foundation/list/select-list.ts +86 -0
- package/src/foundation/list/symbols.ts +22 -0
- package/src/foundation/logger/colors.ts +33 -0
- package/src/foundation/logger/controller.ts +71 -0
- package/src/foundation/logger/events.ts +29 -0
- package/src/foundation/logger/grouped-log.ts +44 -0
- package/src/foundation/logger/log-level.ts +17 -0
- package/src/foundation/logger/log-printer.ts +119 -0
- package/src/foundation/logger/ms.ts +31 -0
- package/src/foundation/observers/focus-visible.ts +74 -0
- package/src/foundation/observers/intersection-observer.ts +60 -0
- package/src/foundation/observers/page-visibility.ts +105 -0
- package/src/foundation/observers/raf-loop.ts +29 -0
- package/src/foundation/orientation/controller.ts +139 -0
- package/src/foundation/orientation/events.ts +20 -0
- package/src/foundation/orientation/types.ts +96 -0
- package/src/foundation/queue/queue.ts +41 -0
- package/src/foundation/queue/request-queue.test.ts +139 -0
- package/src/foundation/queue/request-queue.ts +94 -0
- package/src/global/layouts/default.ts +28 -0
- package/src/global/layouts/loader.ts +5 -0
- package/src/global/layouts/plyr.ts +24 -0
- package/src/global/player.ts +144 -0
- package/src/global/plyr.ts +917 -0
- package/src/globals.d.ts +11 -0
- package/src/index.ts +10 -0
- package/src/plugins.ts +369 -0
- package/src/providers/audio/loader.ts +45 -0
- package/src/providers/audio/provider.ts +50 -0
- package/src/providers/dash/dash.ts +417 -0
- package/src/providers/dash/events.ts +585 -0
- package/src/providers/dash/lib-loader.ts +202 -0
- package/src/providers/dash/loader.ts +33 -0
- package/src/providers/dash/provider.ts +135 -0
- package/src/providers/dash/types.ts +21 -0
- package/src/providers/embed/EmbedProvider.ts +84 -0
- package/src/providers/google-cast/events.ts +53 -0
- package/src/providers/google-cast/loader.ts +174 -0
- package/src/providers/google-cast/media-info.ts +49 -0
- package/src/providers/google-cast/provider.ts +483 -0
- package/src/providers/google-cast/tracks.ts +170 -0
- package/src/providers/google-cast/types.ts +3 -0
- package/src/providers/google-cast/utils.ts +112 -0
- package/src/providers/hls/events.ts +472 -0
- package/src/providers/hls/hls.ts +290 -0
- package/src/providers/hls/lib-loader.ts +178 -0
- package/src/providers/hls/loader.ts +33 -0
- package/src/providers/hls/provider.ts +137 -0
- package/src/providers/hls/types.ts +10 -0
- package/src/providers/html/audio/audio-context.ts +60 -0
- package/src/providers/html/audio/audio-gain.ts +100 -0
- package/src/providers/html/html/342/200/223media-events.ts +338 -0
- package/src/providers/html/native-audio-tracks.ts +91 -0
- package/src/providers/html/provider.ts +141 -0
- package/src/providers/html/remote-playback.ts +94 -0
- package/src/providers/type-check.ts +61 -0
- package/src/providers/types.ts +95 -0
- package/src/providers/video/loader.ts +45 -0
- package/src/providers/video/native-hls-text-tracks.ts +69 -0
- package/src/providers/video/picture-in-picture.ts +54 -0
- package/src/providers/video/presentation/events.ts +12 -0
- package/src/providers/video/presentation/video-presentation.ts +110 -0
- package/src/providers/video/provider.ts +91 -0
- package/src/providers/vimeo/embed/command.ts +118 -0
- package/src/providers/vimeo/embed/event.ts +124 -0
- package/src/providers/vimeo/embed/message.ts +9 -0
- package/src/providers/vimeo/embed/misc.ts +57 -0
- package/src/providers/vimeo/embed/params.ts +168 -0
- package/src/providers/vimeo/loader.ts +61 -0
- package/src/providers/vimeo/provider.ts +730 -0
- package/src/providers/vimeo/utils.ts +53 -0
- package/src/providers/youtube/embed/command.ts +21 -0
- package/src/providers/youtube/embed/event.ts +1 -0
- package/src/providers/youtube/embed/message.ts +54 -0
- package/src/providers/youtube/embed/params.ts +238 -0
- package/src/providers/youtube/embed/quality.ts +35 -0
- package/src/providers/youtube/embed/state.ts +13 -0
- package/src/providers/youtube/loader.ts +61 -0
- package/src/providers/youtube/provider.ts +403 -0
- package/src/providers/youtube/utils.ts +45 -0
- package/src/tailwind.test.ts +413 -0
- package/src/test-utils/index.ts +22 -0
- package/src/test-utils/setup.ts +3 -0
- package/src/utils/aria.ts +14 -0
- package/src/utils/array.ts +3 -0
- package/src/utils/color.ts +5 -0
- package/src/utils/dom.ts +458 -0
- package/src/utils/error.ts +11 -0
- package/src/utils/language.ts +16 -0
- package/src/utils/manifest.ts +61 -0
- package/src/utils/mime.ts +101 -0
- package/src/utils/network.ts +118 -0
- package/src/utils/number.ts +25 -0
- package/src/utils/promise.ts +12 -0
- package/src/utils/scroll.ts +19 -0
- package/src/utils/support.ts +163 -0
- package/src/utils/time.test.ts +111 -0
- package/src/utils/time.ts +123 -0
- package/styles/player/base.css +153 -0
- package/styles/player/default/buffering.css +55 -0
- package/styles/player/default/buttons.css +175 -0
- package/styles/player/default/captions.css +181 -0
- package/styles/player/default/chapter-title.css +26 -0
- package/styles/player/default/controls.css +56 -0
- package/styles/player/default/gestures.css +19 -0
- package/styles/player/default/icons.css +6 -0
- package/styles/player/default/keyboard.css +148 -0
- package/styles/player/default/layouts/audio.css +417 -0
- package/styles/player/default/layouts/video.css +1082 -0
- package/styles/player/default/menus.css +959 -0
- package/styles/player/default/poster.css +52 -0
- package/styles/player/default/sliders.css +391 -0
- package/styles/player/default/theme.css +2461 -0
- package/styles/player/default/thumbnail.css +40 -0
- package/styles/player/default/time.css +45 -0
- package/styles/player/default/tooltips.css +141 -0
- package/styles/player/plyr/theme.css +1237 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/types/components/aria/announcer.d.ts +27 -0
- package/types/components/layouts/default/audio-layout.d.ts +15 -0
- package/types/components/layouts/default/context.d.ts +9 -0
- package/types/components/layouts/default/default-layout.d.ts +10 -0
- package/types/components/layouts/default/props.d.ts +125 -0
- package/types/components/layouts/default/translations.d.ts +6 -0
- package/types/components/layouts/default/video-layout.d.ts +15 -0
- package/types/components/layouts/plyr/context.d.ts +7 -0
- package/types/components/layouts/plyr/plyr-layout.d.ts +9 -0
- package/types/components/layouts/plyr/props.d.ts +68 -0
- package/types/components/layouts/plyr/translations.d.ts +6 -0
- package/types/components/player.d.ts +214 -0
- package/types/components/provider/provider.d.ts +24 -0
- package/types/components/provider/source-select.d.ts +10 -0
- package/types/components/provider/tracks.d.ts +7 -0
- package/types/components/ui/buttons/airplay-button.d.ts +23 -0
- package/types/components/ui/buttons/caption-button.d.ts +21 -0
- package/types/components/ui/buttons/fullscreen-button.d.ts +28 -0
- package/types/components/ui/buttons/google-cast-button.d.ts +23 -0
- package/types/components/ui/buttons/live-button.d.ts +30 -0
- package/types/components/ui/buttons/mute-button.d.ts +21 -0
- package/types/components/ui/buttons/pip-button.d.ts +22 -0
- package/types/components/ui/buttons/play-button.d.ts +21 -0
- package/types/components/ui/buttons/seek-button.d.ts +32 -0
- package/types/components/ui/buttons/toggle-button-controller.d.ts +20 -0
- package/types/components/ui/buttons/toggle-button.d.ts +29 -0
- package/types/components/ui/captions/captions-renderer.d.ts +12 -0
- package/types/components/ui/captions/captions.d.ts +22 -0
- package/types/components/ui/controls-group.d.ts +9 -0
- package/types/components/ui/controls.d.ts +38 -0
- package/types/components/ui/gesture.d.ts +64 -0
- package/types/components/ui/menu/menu-button.d.ts +37 -0
- package/types/components/ui/menu/menu-context.d.ts +23 -0
- package/types/components/ui/menu/menu-focus-controller.d.ts +14 -0
- package/types/components/ui/menu/menu-item.d.ts +9 -0
- package/types/components/ui/menu/menu-items.d.ts +44 -0
- package/types/components/ui/menu/menu-portal.d.ts +31 -0
- package/types/components/ui/menu/menu.d.ts +66 -0
- package/types/components/ui/menu/radio/radio-controller.d.ts +14 -0
- package/types/components/ui/menu/radio/radio-group-controller.d.ts +11 -0
- package/types/components/ui/menu/radio/radio-group.d.ts +40 -0
- package/types/components/ui/menu/radio/radio.d.ts +50 -0
- package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +36 -0
- package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +37 -0
- package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +38 -0
- package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +46 -0
- package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +48 -0
- package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +36 -0
- package/types/components/ui/popper/popper.d.ts +15 -0
- package/types/components/ui/poster.d.ts +47 -0
- package/types/components/ui/sliders/audio-gain-slider.d.ts +43 -0
- package/types/components/ui/sliders/quality-slider.d.ts +34 -0
- package/types/components/ui/sliders/slider/api/cssvars.d.ts +10 -0
- package/types/components/ui/sliders/slider/api/events.d.ts +57 -0
- package/types/components/ui/sliders/slider/api/state.d.ts +68 -0
- package/types/components/ui/sliders/slider/events-controller.d.ts +23 -0
- package/types/components/ui/sliders/slider/format.d.ts +8 -0
- package/types/components/ui/sliders/slider/slider-context.d.ts +13 -0
- package/types/components/ui/sliders/slider/slider-controller.d.ts +59 -0
- package/types/components/ui/sliders/slider/slider.d.ts +39 -0
- package/types/components/ui/sliders/slider/types.d.ts +1 -0
- package/types/components/ui/sliders/slider/utils.d.ts +2 -0
- package/types/components/ui/sliders/slider-preview.d.ts +34 -0
- package/types/components/ui/sliders/slider-thumbnail.d.ts +16 -0
- package/types/components/ui/sliders/slider-value.d.ts +59 -0
- package/types/components/ui/sliders/slider-video.d.ts +73 -0
- package/types/components/ui/sliders/speed-slider.d.ts +42 -0
- package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +36 -0
- package/types/components/ui/sliders/time-slider/time-slider.d.ts +56 -0
- package/types/components/ui/sliders/volume-slider.d.ts +35 -0
- package/types/components/ui/thumbnails/thumbnail-loader.d.ts +47 -0
- package/types/components/ui/thumbnails/thumbnail.d.ts +50 -0
- package/types/components/ui/time.d.ts +62 -0
- package/types/components/ui/tooltip/tooltip-content.d.ts +39 -0
- package/types/components/ui/tooltip/tooltip-context.d.ts +11 -0
- package/types/components/ui/tooltip/tooltip-trigger.d.ts +14 -0
- package/types/components/ui/tooltip/tooltip.d.ts +23 -0
- package/types/core/api/media-attrs.d.ts +3 -0
- package/types/core/api/media-context.d.ts +37 -0
- package/types/core/api/media-events.d.ts +581 -0
- package/types/core/api/media-request-events.d.ts +319 -0
- package/types/core/api/player-controller.d.ts +6 -0
- package/types/core/api/player-events.d.ts +38 -0
- package/types/core/api/player-props.d.ts +163 -0
- package/types/core/api/player-state.d.ts +656 -0
- package/types/core/api/src-types.d.ts +50 -0
- package/types/core/api/types.d.ts +54 -0
- package/types/core/controls.d.ts +43 -0
- package/types/core/font/font-options.d.ts +42 -0
- package/types/core/font/font-vars.d.ts +1 -0
- package/types/core/keyboard/aria-shortcuts.d.ts +6 -0
- package/types/core/keyboard/controller.d.ts +9 -0
- package/types/core/keyboard/types.d.ts +33 -0
- package/types/core/quality/events.d.ts +43 -0
- package/types/core/quality/symbols.d.ts +6 -0
- package/types/core/quality/utils.d.ts +2 -0
- package/types/core/quality/video-quality.d.ts +52 -0
- package/types/core/state/media-events-logger.d.ts +7 -0
- package/types/core/state/media-load-controller.d.ts +6 -0
- package/types/core/state/media-player-delegate.d.ts +13 -0
- package/types/core/state/media-request-manager.d.ts +71 -0
- package/types/core/state/media-state-manager.d.ts +59 -0
- package/types/core/state/media-state-sync.d.ts +8 -0
- package/types/core/state/media-storage.d.ts +74 -0
- package/types/core/state/navigator-media-session.d.ts +5 -0
- package/types/core/state/remote-control.d.ts +288 -0
- package/types/core/state/tracked-media-events.d.ts +2 -0
- package/types/core/time-ranges.d.ts +12 -0
- package/types/core/tracks/audio/audio-tracks.d.ts +32 -0
- package/types/core/tracks/audio/events.d.ts +37 -0
- package/types/core/tracks/text/events.d.ts +49 -0
- package/types/core/tracks/text/render/libass-text-renderer.d.ts +181 -0
- package/types/core/tracks/text/render/native-text-renderer.d.ts +13 -0
- package/types/core/tracks/text/render/text-renderer.d.ts +17 -0
- package/types/core/tracks/text/symbols.d.ts +11 -0
- package/types/core/tracks/text/text-track.d.ts +137 -0
- package/types/core/tracks/text/text-tracks.d.ts +55 -0
- package/types/core/tracks/text/utils.d.ts +8 -0
- package/types/elements/bundles/cdn/player.core.d.ts +5 -0
- package/types/elements/bundles/cdn/player.d.ts +7 -0
- package/types/elements/bundles/cdn/plyr.d.ts +5 -0
- package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +4 -0
- package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +4 -0
- package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +3 -0
- package/types/elements/bundles/cdn-legacy/player.d.ts +3 -0
- package/types/elements/bundles/icons.d.ts +2 -0
- package/types/elements/bundles/player-layouts/default.d.ts +1 -0
- package/types/elements/bundles/player-layouts/index.d.ts +1 -0
- package/types/elements/bundles/player-layouts/plyr.d.ts +1 -0
- package/types/elements/bundles/player-ui.d.ts +1 -0
- package/types/elements/bundles/player.d.ts +1 -0
- package/types/elements/define/announcer-element.d.ts +18 -0
- package/types/elements/define/buttons/airplay-button-element.d.ts +19 -0
- package/types/elements/define/buttons/caption-button-element.d.ts +20 -0
- package/types/elements/define/buttons/fullscreen-button-element.d.ts +20 -0
- package/types/elements/define/buttons/google-cast-button-element.d.ts +19 -0
- package/types/elements/define/buttons/live-button-element.d.ts +20 -0
- package/types/elements/define/buttons/mute-button-element.d.ts +21 -0
- package/types/elements/define/buttons/pip-button-element.d.ts +20 -0
- package/types/elements/define/buttons/play-button-element.d.ts +21 -0
- package/types/elements/define/buttons/seek-button-element.d.ts +24 -0
- package/types/elements/define/buttons/toggle-button-element.d.ts +19 -0
- package/types/elements/define/captions-element.d.ts +18 -0
- package/types/elements/define/chapter-title-element.d.ts +30 -0
- package/types/elements/define/controls-element.d.ts +24 -0
- package/types/elements/define/controls-group-element.d.ts +24 -0
- package/types/elements/define/gesture-element.d.ts +22 -0
- package/types/elements/define/layouts/default/audio-layout-element.d.ts +29 -0
- package/types/elements/define/layouts/default/audio-layout.d.ts +1 -0
- package/types/elements/define/layouts/default/icons-loader.d.ts +5 -0
- package/types/elements/define/layouts/default/icons.d.ts +52 -0
- package/types/elements/define/layouts/default/slots.d.ts +2 -0
- package/types/elements/define/layouts/default/ui/announcer.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/buttons.d.ts +31 -0
- package/types/elements/define/layouts/default/ui/captions.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/controls.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +26 -0
- package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +3 -0
- package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +4 -0
- package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +1 -0
- package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +8 -0
- package/types/elements/define/layouts/default/ui/slider.d.ts +10 -0
- package/types/elements/define/layouts/default/ui/time.d.ts +3 -0
- package/types/elements/define/layouts/default/ui/title.d.ts +2 -0
- package/types/elements/define/layouts/default/ui/utils.d.ts +3 -0
- package/types/elements/define/layouts/default/video-layout-element.d.ts +29 -0
- package/types/elements/define/layouts/default/video-layout.d.ts +5 -0
- package/types/elements/define/layouts/icons/icons-loader.d.ts +11 -0
- package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +4 -0
- package/types/elements/define/layouts/layout-element.d.ts +38 -0
- package/types/elements/define/layouts/layout-name.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +2 -0
- package/types/elements/define/layouts/plyr/icons-loader.d.ts +5 -0
- package/types/elements/define/layouts/plyr/icons.d.ts +18 -0
- package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +26 -0
- package/types/elements/define/layouts/plyr/ui.d.ts +3 -0
- package/types/elements/define/layouts/slot-manager.d.ts +7 -0
- package/types/elements/define/layouts/slot-observer.d.ts +12 -0
- package/types/elements/define/menus/_template.d.ts +7 -0
- package/types/elements/define/menus/audio-gain-group-element.d.ts +31 -0
- package/types/elements/define/menus/audio-radio-group-element.d.ts +31 -0
- package/types/elements/define/menus/captions-radio-group-element.d.ts +31 -0
- package/types/elements/define/menus/chapters-radio-group-element.d.ts +36 -0
- package/types/elements/define/menus/menu-button-element.d.ts +25 -0
- package/types/elements/define/menus/menu-element.d.ts +26 -0
- package/types/elements/define/menus/menu-item-element.d.ts +22 -0
- package/types/elements/define/menus/menu-items-element.d.ts +25 -0
- package/types/elements/define/menus/menu-portal-element.d.ts +25 -0
- package/types/elements/define/menus/quality-radio-group-element.d.ts +33 -0
- package/types/elements/define/menus/radio-element.d.ts +22 -0
- package/types/elements/define/menus/radio-group-element.d.ts +22 -0
- package/types/elements/define/menus/speed-radio-group-element.d.ts +31 -0
- package/types/elements/define/player-element.d.ts +24 -0
- package/types/elements/define/poster-element.d.ts +25 -0
- package/types/elements/define/provider-cast-display.d.ts +2 -0
- package/types/elements/define/provider-element.d.ts +25 -0
- package/types/elements/define/sliders/audio-gain-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/quality-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/slider-chapters-element.d.ts +31 -0
- package/types/elements/define/sliders/slider-element.d.ts +23 -0
- package/types/elements/define/sliders/slider-preview-element.d.ts +14 -0
- package/types/elements/define/sliders/slider-steps-element.d.ts +28 -0
- package/types/elements/define/sliders/slider-thumbnail-element.d.ts +26 -0
- package/types/elements/define/sliders/slider-value-element.d.ts +37 -0
- package/types/elements/define/sliders/slider-video-element.d.ts +25 -0
- package/types/elements/define/sliders/speed-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/time-slider-element.d.ts +32 -0
- package/types/elements/define/sliders/volume-slider-element.d.ts +32 -0
- package/types/elements/define/spinner-element.d.ts +50 -0
- package/types/elements/define/thumbnail-element.d.ts +29 -0
- package/types/elements/define/time-element.d.ts +24 -0
- package/types/elements/define/title-element.d.ts +23 -0
- package/types/elements/define/tooltips/tooltip-content-element.d.ts +26 -0
- package/types/elements/define/tooltips/tooltip-element.d.ts +26 -0
- package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +27 -0
- package/types/elements/icon.d.ts +10 -0
- package/types/elements/index.d.ts +56 -0
- package/types/elements/lit/directives/signal.d.ts +1 -0
- package/types/elements/lit/html.d.ts +4 -0
- package/types/elements/lit/lit-element.d.ts +8 -0
- package/types/elements/state-controller.d.ts +5 -0
- package/types/exports/components.d.ts +59 -0
- package/types/exports/core.d.ts +26 -0
- package/types/exports/events.d.ts +32 -0
- package/types/exports/font.d.ts +2 -0
- package/types/exports/foundation.d.ts +8 -0
- package/types/exports/maverick.d.ts +1 -0
- package/types/exports/providers.d.ts +22 -0
- package/types/exports/utils.d.ts +4 -0
- package/types/foundation/fullscreen/controller.d.ts +39 -0
- package/types/foundation/fullscreen/events.d.ts +25 -0
- package/types/foundation/list/list.d.ts +64 -0
- package/types/foundation/list/select-list.d.ts +30 -0
- package/types/foundation/list/symbols.d.ts +14 -0
- package/types/foundation/logger/colors.d.ts +5 -0
- package/types/foundation/logger/controller.d.ts +20 -0
- package/types/foundation/logger/events.d.ts +26 -0
- package/types/foundation/logger/grouped-log.d.ts +22 -0
- package/types/foundation/logger/log-level.d.ts +15 -0
- package/types/foundation/logger/log-printer.d.ts +11 -0
- package/types/foundation/logger/ms.d.ts +4 -0
- package/types/foundation/observers/focus-visible.d.ts +7 -0
- package/types/foundation/observers/intersection-observer.d.ts +36 -0
- package/types/foundation/observers/page-visibility.d.ts +37 -0
- package/types/foundation/observers/raf-loop.d.ts +6 -0
- package/types/foundation/orientation/controller.d.ts +62 -0
- package/types/foundation/orientation/events.d.ts +16 -0
- package/types/foundation/orientation/types.d.ts +85 -0
- package/types/foundation/queue/queue.d.ts +24 -0
- package/types/foundation/queue/request-queue.d.ts +42 -0
- package/types/global/layouts/default.d.ts +9 -0
- package/types/global/layouts/loader.d.ts +5 -0
- package/types/global/layouts/plyr.d.ts +9 -0
- package/types/global/player.d.ts +26 -0
- package/types/global/plyr.d.ts +344 -0
- package/types/index.d.ts +6 -0
- package/types/plugins.d.ts +11 -0
- package/types/providers/audio/loader.d.ts +12 -0
- package/types/providers/audio/provider.d.ts +29 -0
- package/types/providers/dash/dash.d.ts +15 -0
- package/types/providers/dash/events.d.ts +570 -0
- package/types/providers/dash/lib-loader.d.ts +6 -0
- package/types/providers/dash/loader.d.ts +10 -0
- package/types/providers/dash/provider.d.ts +62 -0
- package/types/providers/dash/types.d.ts +13 -0
- package/types/providers/embed/EmbedProvider.d.ts +18 -0
- package/types/providers/google-cast/events.d.ts +36 -0
- package/types/providers/google-cast/loader.d.ts +18 -0
- package/types/providers/google-cast/media-info.d.ts +11 -0
- package/types/providers/google-cast/provider.d.ts +48 -0
- package/types/providers/google-cast/tracks.d.ts +10 -0
- package/types/providers/google-cast/types.d.ts +3 -0
- package/types/providers/google-cast/utils.d.ts +34 -0
- package/types/providers/hls/events.d.ts +463 -0
- package/types/providers/hls/hls.d.ts +14 -0
- package/types/providers/hls/lib-loader.d.ts +6 -0
- package/types/providers/hls/loader.d.ts +10 -0
- package/types/providers/hls/provider.d.ts +64 -0
- package/types/providers/hls/types.d.ts +9 -0
- package/types/providers/html/audio/audio-context.d.ts +6 -0
- package/types/providers/html/audio/audio-gain.d.ts +10 -0
- package/types/providers/html/html/342/200/223media-events.d.ts +6 -0
- package/types/providers/html/native-audio-tracks.d.ts +6 -0
- package/types/providers/html/provider.d.ts +34 -0
- package/types/providers/html/remote-playback.d.ts +18 -0
- package/types/providers/type-check.d.ts +28 -0
- package/types/providers/types.d.ts +95 -0
- package/types/providers/video/loader.d.ts +12 -0
- package/types/providers/video/native-hls-text-tracks.d.ts +9 -0
- package/types/providers/video/picture-in-picture.d.ts +16 -0
- package/types/providers/video/presentation/events.d.ts +11 -0
- package/types/providers/video/presentation/video-presentation.d.ts +30 -0
- package/types/providers/video/provider.d.ts +34 -0
- package/types/providers/vimeo/embed/command.d.ts +81 -0
- package/types/providers/vimeo/embed/event.d.ts +58 -0
- package/types/providers/vimeo/embed/message.d.ts +8 -0
- package/types/providers/vimeo/embed/misc.d.ts +52 -0
- package/types/providers/vimeo/embed/params.d.ts +148 -0
- package/types/providers/vimeo/loader.d.ts +14 -0
- package/types/providers/vimeo/provider.d.ts +61 -0
- package/types/providers/vimeo/utils.d.ts +6 -0
- package/types/providers/youtube/embed/command.d.ts +13 -0
- package/types/providers/youtube/embed/event.d.ts +1 -0
- package/types/providers/youtube/embed/message.d.ts +50 -0
- package/types/providers/youtube/embed/params.d.ts +218 -0
- package/types/providers/youtube/embed/quality.d.ts +2 -0
- package/types/providers/youtube/embed/state.d.ts +12 -0
- package/types/providers/youtube/loader.d.ts +14 -0
- package/types/providers/youtube/provider.d.ts +61 -0
- package/types/providers/youtube/utils.d.ts +2 -0
- package/types/utils/aria.d.ts +4 -0
- package/types/utils/array.d.ts +1 -0
- package/types/utils/color.d.ts +1 -0
- package/types/utils/dom.d.ts +41 -0
- package/types/utils/error.d.ts +2 -0
- package/types/utils/language.d.ts +8 -0
- package/types/utils/manifest.d.ts +3 -0
- package/types/utils/mime.d.ts +15 -0
- package/types/utils/network.d.ts +17 -0
- package/types/utils/number.d.ts +17 -0
- package/types/utils/promise.d.ts +1 -0
- package/types/utils/scroll.d.ts +5 -0
- package/types/utils/support.d.ts +72 -0
- package/types/utils/time.d.ts +57 -0
- package/vite.config.ts +61 -0
|
@@ -0,0 +1,656 @@
|
|
|
1
|
+
import { State, type Store } from 'maverick.js';
|
|
2
|
+
import type { LogLevel } from '../../foundation/logger/log-level';
|
|
3
|
+
import type { MediaProviderLoader } from '../../providers/types';
|
|
4
|
+
import type { VideoQuality } from '../quality/video-quality';
|
|
5
|
+
import type { AudioTrack } from '../tracks/audio/audio-tracks';
|
|
6
|
+
import { type TextTrack } from '../tracks/text/text-track';
|
|
7
|
+
import type { Src } from './src-types';
|
|
8
|
+
import type { MediaCrossOrigin, MediaErrorDetail, MediaStreamType, MediaType, MediaViewType, RemotePlaybackInfo, RemotePlaybackType } from './types';
|
|
9
|
+
export interface MediaPlayerState extends MediaState {
|
|
10
|
+
}
|
|
11
|
+
export declare const mediaState: State<MediaState>;
|
|
12
|
+
/**
|
|
13
|
+
* Resets all media state and leaves general player state intact.
|
|
14
|
+
*/
|
|
15
|
+
export declare function softResetMediaState($media: MediaStore, isSourceQualityChange?: boolean): void;
|
|
16
|
+
export interface MediaStore extends Store<MediaState> {
|
|
17
|
+
}
|
|
18
|
+
export interface PlayerStore extends MediaStore {
|
|
19
|
+
}
|
|
20
|
+
export interface MediaState {
|
|
21
|
+
/**
|
|
22
|
+
* Whether playback should automatically begin as soon as enough media is available to do so
|
|
23
|
+
* without interruption.
|
|
24
|
+
*
|
|
25
|
+
* Sites which automatically play audio (or videos with an audio track) can be an unpleasant
|
|
26
|
+
* experience for users, so it should be avoided when possible. If you must offer auto-play
|
|
27
|
+
* functionality, you should make it opt-in (requiring a user to specifically enable it).
|
|
28
|
+
*
|
|
29
|
+
* However, auto-play can be useful when creating media elements whose source will be set at a
|
|
30
|
+
* later time, under user control.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue false
|
|
33
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/autoplay}
|
|
34
|
+
*/
|
|
35
|
+
autoPlay: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Set to an error when auto-play has failed to begin playback. This can be used to determine
|
|
38
|
+
* when to show a recovery UI in the event auto-play fails.
|
|
39
|
+
*
|
|
40
|
+
* @defaultValue null
|
|
41
|
+
*/
|
|
42
|
+
autoPlayError: {
|
|
43
|
+
muted: boolean;
|
|
44
|
+
error: Error;
|
|
45
|
+
} | null;
|
|
46
|
+
/**
|
|
47
|
+
* Returns a `TimeRanges` object that indicates the ranges of the media source that the
|
|
48
|
+
* browser has buffered (if any) at the moment the buffered property is accessed. This is usually
|
|
49
|
+
* contiguous but if the user jumps about while media is buffering, it may contain holes.
|
|
50
|
+
*
|
|
51
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
|
|
52
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
|
|
53
|
+
* @defaultValue TimeRanges
|
|
54
|
+
*/
|
|
55
|
+
buffered: TimeRanges;
|
|
56
|
+
/**
|
|
57
|
+
* The earliest time in seconds for which media has been buffered (i.e., downloaded by the
|
|
58
|
+
* browser).
|
|
59
|
+
*
|
|
60
|
+
* @defaultValue 0
|
|
61
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
|
|
62
|
+
*/
|
|
63
|
+
readonly bufferedStart: number;
|
|
64
|
+
/**
|
|
65
|
+
* The latest time in seconds for which media has been buffered (i.e., downloaded by the
|
|
66
|
+
* browser).
|
|
67
|
+
*
|
|
68
|
+
* @defaultValue 0
|
|
69
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
|
|
70
|
+
*/
|
|
71
|
+
readonly bufferedEnd: number;
|
|
72
|
+
/**
|
|
73
|
+
* The length of the buffered window in seconds from `bufferedStart` to `bufferedEnd`.
|
|
74
|
+
*/
|
|
75
|
+
readonly bufferedWindow: number;
|
|
76
|
+
/**
|
|
77
|
+
* A `double` indicating the total playback length of the media in seconds. If no media data is
|
|
78
|
+
* available, the returned value is `0`. If the media is of indefinite length (such as
|
|
79
|
+
* streamed live media, a WebRTC call's media, or similar), the value is `+Infinity`.
|
|
80
|
+
*
|
|
81
|
+
* @defaultValue 0
|
|
82
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/duration}
|
|
83
|
+
*/
|
|
84
|
+
readonly duration: number;
|
|
85
|
+
/**
|
|
86
|
+
* Whether Apple AirPlay is available for casting and playing media on another device such as a
|
|
87
|
+
* TV.
|
|
88
|
+
*/
|
|
89
|
+
canAirPlay: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Whether Google Cast is available for casting and playing media on another device such as a TV.
|
|
92
|
+
*/
|
|
93
|
+
canGoogleCast: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* The current remote playback state when using AirPlay or Google Cast.
|
|
96
|
+
*/
|
|
97
|
+
remotePlaybackState: RemotePlaybackState;
|
|
98
|
+
/**
|
|
99
|
+
* The type of remote playback that is currently connecting or connected.
|
|
100
|
+
*/
|
|
101
|
+
remotePlaybackType: RemotePlaybackType;
|
|
102
|
+
/**
|
|
103
|
+
* An active remote playback loader such as the `GoogleCastLoader`.
|
|
104
|
+
*/
|
|
105
|
+
remotePlaybackLoader: MediaProviderLoader | null;
|
|
106
|
+
/**
|
|
107
|
+
* Information about the current remote playback.
|
|
108
|
+
*/
|
|
109
|
+
remotePlaybackInfo: RemotePlaybackInfo | null;
|
|
110
|
+
/**
|
|
111
|
+
* Whether AirPlay is connected.
|
|
112
|
+
*/
|
|
113
|
+
readonly isAirPlayConnected: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Whether Google Cast is connected.
|
|
116
|
+
*/
|
|
117
|
+
readonly isGoogleCastConnected: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Whether the native browser Fullscreen API is available, or the current provider can
|
|
120
|
+
* toggle fullscreen mode. This does not mean that the operation is guaranteed to be successful,
|
|
121
|
+
* only that it can be attempted.
|
|
122
|
+
*
|
|
123
|
+
* @defaultValue false
|
|
124
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
|
|
125
|
+
*/
|
|
126
|
+
canFullscreen: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Whether the native Screen Orientation API and required methods (lock/unlock) are available.
|
|
129
|
+
*
|
|
130
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API}
|
|
131
|
+
*/
|
|
132
|
+
canOrientScreen: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Whether picture-in-picture mode is supported by the current media provider.
|
|
135
|
+
*
|
|
136
|
+
* @defaultValue false
|
|
137
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
|
|
138
|
+
*/
|
|
139
|
+
canPictureInPicture: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Whether media is allowed to begin loading. This depends on the `load` player prop.
|
|
142
|
+
*
|
|
143
|
+
* @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
|
|
144
|
+
*/
|
|
145
|
+
canLoad: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Whether the media poster is allowed to begin loading. This depends on the `posterLoad`
|
|
148
|
+
* player prop.
|
|
149
|
+
*
|
|
150
|
+
* @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
|
|
151
|
+
*/
|
|
152
|
+
canLoadPoster: boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Whether the user agent can play the media, but estimates that **not enough** data has been
|
|
155
|
+
* loaded to play the media up to its end without having to stop for further buffering of
|
|
156
|
+
* content.
|
|
157
|
+
*
|
|
158
|
+
* @defaultValue false
|
|
159
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canplay_event}
|
|
160
|
+
*/
|
|
161
|
+
canPlay: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Whether seeking operations are possible on the current stream. This generally false for
|
|
164
|
+
* live streams that are loaded natively.
|
|
165
|
+
*
|
|
166
|
+
* @defaultValue true
|
|
167
|
+
*/
|
|
168
|
+
readonly canSeek: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Limit playback to only play _after_ a certain time. Playback will begin from this time.
|
|
171
|
+
*
|
|
172
|
+
* @defaultValue 0
|
|
173
|
+
*/
|
|
174
|
+
clipStartTime: number;
|
|
175
|
+
/**
|
|
176
|
+
* Limit playback to only play _before_ a certain time. Playback will end at this time.
|
|
177
|
+
*
|
|
178
|
+
* @defaultValue 0
|
|
179
|
+
*/
|
|
180
|
+
clipEndTime: number;
|
|
181
|
+
/**
|
|
182
|
+
* Indicates whether a user interface should be shown for controlling the resource. Set this to
|
|
183
|
+
* `false` when you want to provide your own custom controls, and `true` if you want the current
|
|
184
|
+
* provider to supply its own default controls. Depending on the provider, changing this prop
|
|
185
|
+
* may cause the player to completely reset.
|
|
186
|
+
*
|
|
187
|
+
* @defaultValue false
|
|
188
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controls}
|
|
189
|
+
*/
|
|
190
|
+
controls: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Whether iOS Safari video controls are visible. This will be true if `playsinline` is not set
|
|
193
|
+
* or in fullscreen due to lack of a Fullscreen API.
|
|
194
|
+
*/
|
|
195
|
+
readonly iOSControls: boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Whether native controls should be shown due to the `controls` state or `iOSControls` state.
|
|
198
|
+
*/
|
|
199
|
+
readonly nativeControls: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Defines how the media element handles cross-origin requests, thereby enabling the
|
|
202
|
+
* configuration of the CORS requests for the element's fetched data.
|
|
203
|
+
*
|
|
204
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
|
|
205
|
+
*/
|
|
206
|
+
crossOrigin: MediaCrossOrigin | null;
|
|
207
|
+
/**
|
|
208
|
+
* The URL of the current poster. Defaults to `''` if no media/poster has been given or
|
|
209
|
+
* loaded.
|
|
210
|
+
*
|
|
211
|
+
* @defaultValue ''
|
|
212
|
+
*/
|
|
213
|
+
readonly poster: string;
|
|
214
|
+
/**
|
|
215
|
+
* A `double` indicating the current playback time in seconds. Defaults to `0` if the media has
|
|
216
|
+
* not started to play and has not seeked. Setting this value seeks the media to the new
|
|
217
|
+
* time. The value can be set to a minimum of `0` and maximum of the total length of the
|
|
218
|
+
* media (indicated by the duration prop).
|
|
219
|
+
*
|
|
220
|
+
* @defaultValue 0
|
|
221
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime}
|
|
222
|
+
*/
|
|
223
|
+
readonly currentTime: number;
|
|
224
|
+
/**
|
|
225
|
+
* Whether media playback has reached the end. In other words it'll be true
|
|
226
|
+
* if `currentTime === duration`.
|
|
227
|
+
*
|
|
228
|
+
* @defaultValue false
|
|
229
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended}
|
|
230
|
+
*/
|
|
231
|
+
ended: boolean;
|
|
232
|
+
/**
|
|
233
|
+
* Contains the most recent media error or undefined if there's been none. You can listen for
|
|
234
|
+
* `error` event updates and examine this object to debug further.
|
|
235
|
+
*
|
|
236
|
+
* @defaultValue null
|
|
237
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error}
|
|
238
|
+
*/
|
|
239
|
+
error: MediaErrorDetail | null;
|
|
240
|
+
/**
|
|
241
|
+
* Whether the player is currently in fullscreen mode.
|
|
242
|
+
*
|
|
243
|
+
* @defaultValue false
|
|
244
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
|
|
245
|
+
*/
|
|
246
|
+
fullscreen: boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Whether the controls are visible. By default, controls will be hidden when media playback
|
|
249
|
+
* is progressing (playing) without any detected user activity for a set period of time
|
|
250
|
+
* (default is 2.5s).
|
|
251
|
+
*
|
|
252
|
+
* @defaultValue false
|
|
253
|
+
*/
|
|
254
|
+
controlsVisible: boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Whether controls are hidden.
|
|
257
|
+
*/
|
|
258
|
+
readonly controlsHidden: boolean;
|
|
259
|
+
/**
|
|
260
|
+
* Whether the user has intentionally seeked behind the live edge. The user must've seeked
|
|
261
|
+
* roughly 2 or more seconds behind during a live stream for this to be considered true.
|
|
262
|
+
*
|
|
263
|
+
* @defaultValue false
|
|
264
|
+
*/
|
|
265
|
+
userBehindLiveEdge: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Whether media should automatically start playing from the beginning (replay) every time
|
|
268
|
+
* it ends.
|
|
269
|
+
*
|
|
270
|
+
* @defaultValue false
|
|
271
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/loop}
|
|
272
|
+
*/
|
|
273
|
+
readonly loop: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* The current log level. Values in order of priority are: `silent`, `error`, `warn`, `info`,
|
|
276
|
+
* and `debug`.
|
|
277
|
+
*/
|
|
278
|
+
logLevel: LogLevel;
|
|
279
|
+
/**
|
|
280
|
+
* Whether the current media stream is live (i.e., being broadcast right now).
|
|
281
|
+
*/
|
|
282
|
+
live: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* The number of seconds that `currentTime` can be behind `liveEdgeStart` and still be considered
|
|
285
|
+
* at the edge. The default value is 10, meaning the user can be up to 10 seconds behind the
|
|
286
|
+
* live edge start and still be considered live.
|
|
287
|
+
*
|
|
288
|
+
* @defaultValue 10
|
|
289
|
+
*/
|
|
290
|
+
liveEdgeTolerance: number;
|
|
291
|
+
/**
|
|
292
|
+
* The minimum seekable length in seconds before seeking operations are permitted on live streams.
|
|
293
|
+
*
|
|
294
|
+
* @defaultValue 60
|
|
295
|
+
*/
|
|
296
|
+
minLiveDVRWindow: number;
|
|
297
|
+
/**
|
|
298
|
+
* The inferred length of the live DVR window.
|
|
299
|
+
*/
|
|
300
|
+
readonly liveDVRWindow: number;
|
|
301
|
+
/**
|
|
302
|
+
* Whether the live stream has Digital Video Recording (DVR) enabled.
|
|
303
|
+
*/
|
|
304
|
+
readonly isLiveDVR: boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Whether the current stream is at the live edge. This is true if:
|
|
307
|
+
*
|
|
308
|
+
* 1. The player is _not_ in a paused state.
|
|
309
|
+
* 2. The user has _not_ intentionally seeked behind live edge start.
|
|
310
|
+
* 3. The `currentTime` is greater or equal than `liveEdgeStart`.
|
|
311
|
+
*
|
|
312
|
+
* This value will default to `false` for non-live streams.
|
|
313
|
+
*
|
|
314
|
+
* @defaultValue false
|
|
315
|
+
*/
|
|
316
|
+
readonly liveEdge: boolean;
|
|
317
|
+
/**
|
|
318
|
+
* This is the starting edge of the live stream.
|
|
319
|
+
*
|
|
320
|
+
* A delay is applied in `hls.js` that's specified by the `liveSyncDurationCount` which is
|
|
321
|
+
* expressed as a multiple of `EXT-X-TARGETDURATION` (default value is safely set to 3). If
|
|
322
|
+
* set to `m`, playback will start from the fragment at `n-m`, where `n` is the last fragment
|
|
323
|
+
* of the live playlist. Decreasing this value is likely to cause playback stalls.
|
|
324
|
+
*
|
|
325
|
+
* The `seekableEnd` value is used as the live edge start in native playback engines.
|
|
326
|
+
*
|
|
327
|
+
* @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#hlslivesyncposition}
|
|
328
|
+
* @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#livesyncdurationcount}
|
|
329
|
+
* @see {@link https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md}
|
|
330
|
+
*/
|
|
331
|
+
readonly liveEdgeStart: number;
|
|
332
|
+
/**
|
|
333
|
+
* The length of the live edge window in seconds starting from `liveEdgeStart` and ending at
|
|
334
|
+
* `seekableEnd`. If the `duration` of the stream is `Infinity` or the stream is non-live then
|
|
335
|
+
* this value will default to 0.
|
|
336
|
+
*/
|
|
337
|
+
readonly liveEdgeWindow: number;
|
|
338
|
+
/**
|
|
339
|
+
* The type of media that is currently active, whether it's audio or video. Defaults
|
|
340
|
+
* to `unknown` when no media has been loaded or the type cannot be determined.
|
|
341
|
+
*
|
|
342
|
+
* @defaultValue 'unknown'
|
|
343
|
+
*/
|
|
344
|
+
mediaType: MediaType;
|
|
345
|
+
/**
|
|
346
|
+
* Whether the audio is muted or not.
|
|
347
|
+
*
|
|
348
|
+
* @defaultValue false
|
|
349
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/muted}
|
|
350
|
+
*/
|
|
351
|
+
muted: boolean;
|
|
352
|
+
/**
|
|
353
|
+
* Whether playback should be paused. Defaults to `true` if no media has loaded or playback has
|
|
354
|
+
* not started. Setting this to `false` will begin/resume playback.
|
|
355
|
+
*
|
|
356
|
+
* @defaultValue true
|
|
357
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/paused}
|
|
358
|
+
*/
|
|
359
|
+
paused: boolean;
|
|
360
|
+
/**
|
|
361
|
+
* Contains the ranges of the media source that the browser has played, if any.
|
|
362
|
+
*
|
|
363
|
+
* @defaultValue TimeRanges
|
|
364
|
+
*/
|
|
365
|
+
played: TimeRanges;
|
|
366
|
+
/**
|
|
367
|
+
* Whether media is actively playing back. Defaults to `false` if no media has
|
|
368
|
+
* loaded or playback has not started.
|
|
369
|
+
*
|
|
370
|
+
* @defaultValue false
|
|
371
|
+
*/
|
|
372
|
+
playing: boolean;
|
|
373
|
+
/**
|
|
374
|
+
* Whether the video is to be played "inline", that is within the element's playback area. Note
|
|
375
|
+
* that setting this to `false` does not imply that the video will always be played in fullscreen.
|
|
376
|
+
* Depending on the provider, changing this prop may cause the player to completely reset.
|
|
377
|
+
*
|
|
378
|
+
* @defaultValue false
|
|
379
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-playsinline}
|
|
380
|
+
*/
|
|
381
|
+
playsInline: boolean;
|
|
382
|
+
/**
|
|
383
|
+
* Sets the rate at which the media is being played back. This is used to implement user
|
|
384
|
+
* controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied
|
|
385
|
+
* by this value to obtain the current rate, so a value of 1.0 indicates normal speed.
|
|
386
|
+
*
|
|
387
|
+
* Examples:
|
|
388
|
+
*
|
|
389
|
+
* - `0.5` = slow down to 50% of the normal speed
|
|
390
|
+
* - `1.5` = speed up normal speed by 50%
|
|
391
|
+
* - `2` = double the normal speed
|
|
392
|
+
*
|
|
393
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate}
|
|
394
|
+
*/
|
|
395
|
+
playbackRate: number;
|
|
396
|
+
/**
|
|
397
|
+
* Whether the player is currently in picture-in-picture mode.
|
|
398
|
+
*
|
|
399
|
+
* @defaultValue false
|
|
400
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
|
|
401
|
+
*/
|
|
402
|
+
pictureInPicture: boolean;
|
|
403
|
+
/**
|
|
404
|
+
* Configures the preload setting of the underlying media provider once it can load (see
|
|
405
|
+
* `loading` property).
|
|
406
|
+
*
|
|
407
|
+
* The `preload` attribute provides a hint to the browser about what the author thinks will
|
|
408
|
+
* lead to the best user experience with regards to what content is loaded before the video is
|
|
409
|
+
* played. The recommended default is `metadata`.
|
|
410
|
+
*
|
|
411
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-preload}
|
|
412
|
+
*/
|
|
413
|
+
preload: 'none' | 'metadata' | 'auto';
|
|
414
|
+
/**
|
|
415
|
+
* Whether auto quality selection is active.
|
|
416
|
+
*/
|
|
417
|
+
autoQuality: boolean;
|
|
418
|
+
/**
|
|
419
|
+
* The list of available video qualities/renditions. This will be empty if quality information
|
|
420
|
+
* is not provided by the current media provider.
|
|
421
|
+
*/
|
|
422
|
+
qualities: VideoQuality[];
|
|
423
|
+
/**
|
|
424
|
+
* The current playback quality. This will be `null` if quality information is not provided
|
|
425
|
+
* by the current media provider.
|
|
426
|
+
*/
|
|
427
|
+
quality: VideoQuality | null;
|
|
428
|
+
/**
|
|
429
|
+
* The list of available audio tracks. This will be empty if audio track information is not
|
|
430
|
+
* provided by the current media provider.
|
|
431
|
+
*/
|
|
432
|
+
audioTracks: AudioTrack[];
|
|
433
|
+
/**
|
|
434
|
+
* The current audio track. This will be `null` if audio track information is not provided by
|
|
435
|
+
* the current media provider.
|
|
436
|
+
*/
|
|
437
|
+
audioTrack: AudioTrack | null;
|
|
438
|
+
/**
|
|
439
|
+
* The current audio gain. This will be `null` if audio gain is not supported or is not set.
|
|
440
|
+
*/
|
|
441
|
+
audioGain: number | null;
|
|
442
|
+
/**
|
|
443
|
+
* Whether the current video quality list is read-only, meaning quality selections can only
|
|
444
|
+
* be set internally by the media provider. This will only be `false` when working with particular
|
|
445
|
+
* third-party embeds such as YouTube.
|
|
446
|
+
*/
|
|
447
|
+
canSetQuality: boolean;
|
|
448
|
+
/**
|
|
449
|
+
* Whether the current playback rate can be set. This will only be `false` when working with
|
|
450
|
+
* particular third-party embeds such as Vimeo (only available to pro/business accounts).
|
|
451
|
+
*/
|
|
452
|
+
canSetPlaybackRate: boolean;
|
|
453
|
+
/**
|
|
454
|
+
* Whether the current volume can be changed. This depends on the current provider and browser
|
|
455
|
+
* environment. It will generally be `false` on mobile devices as it's set by system controls.
|
|
456
|
+
*/
|
|
457
|
+
canSetVolume: boolean;
|
|
458
|
+
/**
|
|
459
|
+
* Whether the current audio gain can be changed. This depends on the current provider and browser
|
|
460
|
+
* environment. It generally depends on browser's Web Audio API support.
|
|
461
|
+
*
|
|
462
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API}
|
|
463
|
+
*/
|
|
464
|
+
canSetAudioGain: boolean;
|
|
465
|
+
/**
|
|
466
|
+
* Contains the time ranges that the user is able to seek to, if any. This tells us which parts
|
|
467
|
+
* of the media can be played without delay; this is irrespective of whether that part has
|
|
468
|
+
* been downloaded or not.
|
|
469
|
+
*
|
|
470
|
+
* Some parts of the media may be seekable but not buffered if byte-range
|
|
471
|
+
* requests are enabled on the server. Byte range requests allow parts of the media file to
|
|
472
|
+
* be delivered from the server and so can be ready to play almost immediately — thus they are
|
|
473
|
+
* seekable.
|
|
474
|
+
*
|
|
475
|
+
* @defaultValue TimeRanges
|
|
476
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
|
|
477
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
|
|
478
|
+
*/
|
|
479
|
+
seekable: TimeRanges;
|
|
480
|
+
/**
|
|
481
|
+
* Contains the earliest time in seconds at which media can be seeked to. Generally this is
|
|
482
|
+
* zero, but for live streams it may start at a non-zero value.
|
|
483
|
+
*
|
|
484
|
+
* @defaultValue 0
|
|
485
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
|
|
486
|
+
*/
|
|
487
|
+
readonly seekableStart: number;
|
|
488
|
+
/**
|
|
489
|
+
* The latest time in seconds at which media can be seeked to. This will default to `Infinity`
|
|
490
|
+
* if no seekable range is found. If byte-range requests are enabled on the server this should
|
|
491
|
+
* be equal to the media duration - note for live streams duration is a moving target.
|
|
492
|
+
*
|
|
493
|
+
* @defaultValue Infinity
|
|
494
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
|
|
495
|
+
*/
|
|
496
|
+
readonly seekableEnd: number;
|
|
497
|
+
/**
|
|
498
|
+
* The length of the seekable window in seconds starting from `seekableStart` and ending at
|
|
499
|
+
* `seekableEnd`.
|
|
500
|
+
*
|
|
501
|
+
* @defaultValue 0
|
|
502
|
+
*/
|
|
503
|
+
readonly seekableWindow: number;
|
|
504
|
+
/**
|
|
505
|
+
* Whether media is actively seeking to a new playback position.
|
|
506
|
+
*
|
|
507
|
+
* @defaultValue false
|
|
508
|
+
*/
|
|
509
|
+
seeking: boolean;
|
|
510
|
+
/**
|
|
511
|
+
* The URL and optionally type of the current media resource/s to be considered for playback.
|
|
512
|
+
* Use `source` to get the currently loaded resource.
|
|
513
|
+
*
|
|
514
|
+
* @defaultValue []
|
|
515
|
+
*/
|
|
516
|
+
sources: Src[];
|
|
517
|
+
/**
|
|
518
|
+
* The chosen media resource. Defaults to `{ src: '', type: '' }` if no media has been loaded.
|
|
519
|
+
*
|
|
520
|
+
* @defaultValue { src: '', type: '' }
|
|
521
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentSrc}
|
|
522
|
+
*/
|
|
523
|
+
source: Src;
|
|
524
|
+
/** Alias for `source`. */
|
|
525
|
+
currentSrc: Src;
|
|
526
|
+
/**
|
|
527
|
+
* Whether media playback has started. In other words it will be true if `currentTime > 0`.
|
|
528
|
+
*
|
|
529
|
+
* @defaultValue false
|
|
530
|
+
*/
|
|
531
|
+
started: boolean;
|
|
532
|
+
/**
|
|
533
|
+
* The current media stream type. This value helps determine what type of UI should be
|
|
534
|
+
* displayed and whether seeking operations are permitted during live streams. If seeking
|
|
535
|
+
* is permitted, set this value to `live:dvr` or `ll-live:dvr`.
|
|
536
|
+
*/
|
|
537
|
+
streamType: MediaStreamType;
|
|
538
|
+
/**
|
|
539
|
+
* The title of the current media.
|
|
540
|
+
*/
|
|
541
|
+
readonly title: string;
|
|
542
|
+
/**
|
|
543
|
+
* The artist or channel name for which this content belongs to. This can be used in your
|
|
544
|
+
* layout and it will be included in the Media Session API.
|
|
545
|
+
*/
|
|
546
|
+
artist: string;
|
|
547
|
+
/**
|
|
548
|
+
* Images to be included in the Media Session API.
|
|
549
|
+
*/
|
|
550
|
+
artwork: MediaImage[] | null;
|
|
551
|
+
/**
|
|
552
|
+
* The list of all available text tracks.
|
|
553
|
+
*/
|
|
554
|
+
textTracks: TextTrack[];
|
|
555
|
+
/**
|
|
556
|
+
* The current captions/subtitles text track that is showing.
|
|
557
|
+
*/
|
|
558
|
+
textTrack: TextTrack | null;
|
|
559
|
+
/**
|
|
560
|
+
* Whether there are any captions or subtitles available.
|
|
561
|
+
*/
|
|
562
|
+
readonly hasCaptions: boolean;
|
|
563
|
+
/**
|
|
564
|
+
* The type of player view that should be used (i.e., audio or video). By default this is set
|
|
565
|
+
* to `video`.
|
|
566
|
+
*
|
|
567
|
+
* @defaultValue 'unknown'
|
|
568
|
+
*/
|
|
569
|
+
viewType: MediaViewType;
|
|
570
|
+
/**
|
|
571
|
+
* An `int` between `0` (silent) and `1` (loudest) indicating the audio volume. Defaults to `1`.
|
|
572
|
+
*
|
|
573
|
+
* @defaultValue 1
|
|
574
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume}
|
|
575
|
+
*/
|
|
576
|
+
volume: number;
|
|
577
|
+
/**
|
|
578
|
+
* Whether playback has temporarily stopped because of a lack of temporary data.
|
|
579
|
+
*
|
|
580
|
+
* @defaultValue false
|
|
581
|
+
*/
|
|
582
|
+
waiting: boolean;
|
|
583
|
+
/**
|
|
584
|
+
* The user's pointing device type.
|
|
585
|
+
*
|
|
586
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer}
|
|
587
|
+
*/
|
|
588
|
+
pointer: 'fine' | 'coarse';
|
|
589
|
+
/**
|
|
590
|
+
* The current screen orientation.
|
|
591
|
+
*/
|
|
592
|
+
orientation: 'portrait' | 'landscape';
|
|
593
|
+
/**
|
|
594
|
+
* The width of the media player container in pixels.
|
|
595
|
+
*/
|
|
596
|
+
width: number;
|
|
597
|
+
/**
|
|
598
|
+
* The height of the media player container in pixels.
|
|
599
|
+
*/
|
|
600
|
+
height: number;
|
|
601
|
+
/**
|
|
602
|
+
* The width of the media provider in pixels.
|
|
603
|
+
*/
|
|
604
|
+
mediaWidth: number;
|
|
605
|
+
/**
|
|
606
|
+
* The height of the media in provider pixels.
|
|
607
|
+
*/
|
|
608
|
+
mediaHeight: number;
|
|
609
|
+
/**
|
|
610
|
+
* The last keyboard shortcut that was triggered.
|
|
611
|
+
*/
|
|
612
|
+
lastKeyboardAction: {
|
|
613
|
+
action: string;
|
|
614
|
+
event: KeyboardEvent;
|
|
615
|
+
} | null;
|
|
616
|
+
/** @internal */
|
|
617
|
+
autoPlaying: boolean;
|
|
618
|
+
/** @internal */
|
|
619
|
+
providedTitle: string;
|
|
620
|
+
/** @internal */
|
|
621
|
+
inferredTitle: string;
|
|
622
|
+
/** @internal */
|
|
623
|
+
providedLoop: boolean;
|
|
624
|
+
/** @internal */
|
|
625
|
+
userPrefersLoop: boolean;
|
|
626
|
+
/** @internal - Unclipped current time. */
|
|
627
|
+
realCurrentTime: number;
|
|
628
|
+
/** @internal */
|
|
629
|
+
providedPoster: string;
|
|
630
|
+
/** @internal */
|
|
631
|
+
intrinsicDuration: number;
|
|
632
|
+
/** @internal */
|
|
633
|
+
providedDuration: number;
|
|
634
|
+
/** @internal */
|
|
635
|
+
inferredPoster: string;
|
|
636
|
+
/** @internal */
|
|
637
|
+
inferredViewType: MediaViewType;
|
|
638
|
+
/** @internal */
|
|
639
|
+
providedViewType: MediaViewType;
|
|
640
|
+
/** @internal */
|
|
641
|
+
providedStreamType: MediaStreamType;
|
|
642
|
+
/** @internal */
|
|
643
|
+
inferredStreamType: MediaStreamType;
|
|
644
|
+
inferredLiveDVRWindow: number;
|
|
645
|
+
/** @internal */
|
|
646
|
+
liveSyncPosition: number | null;
|
|
647
|
+
/** @internal */
|
|
648
|
+
savedState: {
|
|
649
|
+
paused?: boolean;
|
|
650
|
+
currentTime?: number;
|
|
651
|
+
} | null;
|
|
652
|
+
}
|
|
653
|
+
export interface MediaPlayerQuery {
|
|
654
|
+
(state: MediaPlayerState): boolean;
|
|
655
|
+
}
|
|
656
|
+
export declare function boundTime(time: number, store: MediaStore): number;
|