Project Icon

media-chrome

基于Web组件的灵活媒体播放控件库

media-chrome是一个基于Web组件技术的媒体播放控件库。它通过简洁的HTML接口实现控件的添加和移除,支持CSS自定义样式,并兼容主流JavaScript框架和媒体播放器。这个项目为开发者提供了一个灵活且功能丰富的媒体播放器UI解决方案。

Media Chrome 标志

NPM 版本 NPM 下载量 jsDelivr 点击量 (npm) npm 包大小 slack

为您的媒体播放器量身定制的舞衣。:man_dancing:

使用Web组件(原生自定义元素)实现的完全可定制的媒体播放器控件。

  • 兼容任何JavaScript框架(React、Angular、Svelte等)
  • 兼容<video><audio>元素以及众多播放器(YouTube、HLS.js等)
  • 简单的HTML代码即可添加/删除控件
  • 简单的CSS代码即可设置控件样式

MuxVideo.js的创始人推出。

文档

访问Media Chrome官方文档获取最新的使用说明。

您可以在这里找到media-chrome v0.x版本的文档

示例

查看所有实际运行的仓库示例。

视频示例

<script type="module" src="https://cdn.jsdelivr.net/npm/media-chrome@4/+esm"></script>

<media-controller>
  <video
    slot="media"
    src="https://stream.mux.com/DS00Spx1CV902MCtPj5WknGlR102V5HFkDe/high.mp4"
    crossorigin
  >
    <track
      label="thumbnails"
      default
      kind="metadata"
      src="https://image.mux.com/DS00Spx1CV902MCtPj5WknGlR102V5HFkDe/storyboard.vtt"
    />
  </video>
  <media-control-bar>
    <media-play-button></media-play-button>
    <media-mute-button></media-mute-button>
    <media-volume-range></media-volume-range>
    <media-time-range></media-time-range>
    <media-pip-button></media-pip-button>
    <media-fullscreen-button></media-fullscreen-button>
  </media-control-bar>
</media-controller>

效果(尝试CodePen示例

Media Chrome 视频播放器演示

音频示例

<script type="module" src="https://cdn.jsdelivr.net/npm/media-chrome@4/+esm"></script>

<media-controller audio>
  <audio
    slot="media"
    src="https://stream.mux.com/O4h5z00885HEucNNa1rV02wZapcGp01FXXoJd35AHmGX7g/audio.m4a"
  ></audio>
  <media-control-bar>
    <media-play-button></media-play-button>
    <media-time-display showduration></media-time-display>
    <media-time-range></media-time-range>
    <media-playback-rate-button></media-playback-rate-button>
    <media-mute-button></media-mute-button>
    <media-volume-range></media-volume-range>
  </media-control-bar>
</media-controller>

结果(试试 CodePen 示例

Media Chrome 音频播放器演示

与 React 一起使用

虽然技术上你可以直接在 React 中使用 Media Chrome 元素,但在 React 中使用 Web 组件有时可能会有些笨拙,有些东西对于框架来说就是不太符合习惯(例如:必须使用 class= 而不是 className=,更多详情请参阅 React 官方文档中关于 Web 组件的部分)。为了解决这个问题,我们为所有核心元素发布了一些 React 包装组件。你可以在这里了解如何使用它们。

为什么?

Web 设计师和开发者通常只使用默认的媒体播放器控件,即使在创建漂亮的自定义设计主题时也是如此。这很难避免。

  • Web 浏览器有内置的媒体控件,这些控件难以自定义,而且在每个浏览器中的外观都不同。
  • 像 YouTube、Vimeo 和 SoundCloud 这样的社交网站只允许你自定义播放器的一些小细节,比如主按钮的颜色。
  • 媒体控件复杂,很难从头开始构建。像 Video.js 和 JW Player 这样的开源播放器可以提供帮助,但需要你学习专有的 JS API,而且可能难以与流行的 JavaScript 框架一起使用。

这应该更简单... <media-chrome> 就是为了解决这个问题而创建的。

为什么是现在?

Web 组件。@heff 在 2015 年的 Demuxed 大会上谈到了Web 组件对视频的潜力,并在2020 年再次提到。它们允许我们扩展浏览器的基本 HTML 功能,这意味着我们现在可以将媒体播放器控件构建为简单的 HTML 标签,这些标签:

  • 可以像任何原生 HTML 标签一样在 HTML、JavaScript 和 CSS 中使用(释放你的设计师潜力)
  • 默认与 JavaScript 框架(React、Angular、Svelte)兼容
  • 在同一网站使用多个播放器时可以跨播放器使用,例如 YouTube 和 <video>(甚至可以被播放器用作自己的内置控件)

核心概念

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号