SuperAPI AI 工具集

helios-player

前端与建站

查看项目

更新于 10-22 10:08

技能介绍

Helios Player 是 Helios 项目的播放器组件,以 <helios-player> Web Component 形式提供,用于在任意 Web 应用中嵌入并控制 Helios 合成作品。它负责在 iframe 中加载合成,并建立控制与状态管理桥梁。

用途与加载方式 通过模块脚本引入播放器:<script type="module" src="path/to/@helios-project/player/dist/index.js"></script>,然后使用 <helios-player> 标签,指定 src(合成页面 URL,需包含 Helios 逻辑)、width、height 等属性,可加 controls、autoplay、input-props 等。

主要能力

  • 播放控制:播放、暂停、加载、跳转到指定秒或帧、进入画中画。
  • 音频控制:音量与静音。
  • 属性:可读写 duration、paused、playbackRate、fps、loop、autoplay;只读 videoWidth、videoHeight、readyState、networkState、seeking、played、buffered、seekable、error。
  • 字幕:通过子元素 <track> 提供 SRT 字幕,播放器会获取并传给 Helios 控制器;控件中可切换 CC 字幕叠加显示。
  • 客户端导出:在浏览器内使用 VideoEncoder 导出视频,支持 mp4(H.264/AAC)与 webm(VP9/Opus),可配置导出分辨率、码率、文件名、字幕处理方式(烧录或旁挂文件)。音频需来自 <audio> 元素且启用 CORS。
  • 主题定制:可通过 CSS 变量调整控件背景、文字颜色、强调色、进度条颜色与字体。
  • 诊断:按 Shift+D 或调用 diagnose() 查看 WebCodecs、WebGL 等环境能力。
  • 事件:派发标准媒体事件,如 loadstart、loadedmetadata、canplay、play、pause、ended、timeupdate、seeking、seeked、volumechange、durationchange、ratechange、error。
  • 高级控制:通过 getController() 获取底层 Helios 控制器,可动态更新时长、帧率、分辨率与标记。

使用方式 设置控件相关属性(controls、controlslist、autoplay、loop、muted、poster、preload、interactive);通过 input-props 传入初始属性 JSON;通过 export-mode、export-format、export-caption-mode、export-width、export-height、export-bitrate、export-filename 配置导出;用 JavaScript 调用 play()、pause()、load()、requestPictureInPicture() 等方法并读写属性。

界面特性 内置控件包含播放、音量、字幕、导出、播放速度选择(0.25x–2x)、全屏与进度条,并针对窄宽度做紧凑适配。

适用场景与限制 适用于在网页中展示带播放控制的 Helios 合成、需要客户端导出视频或提供字幕的场合。跨域加载合成时需配置 CORS 响应头;导出音频时音频源必须允许跨域访问,否则无法捕获。

源码位置 组件:packages/player/src/index.ts;导出器:packages/player/src/features/exporter.ts。