原文:https://mp.weixin.qq.com/s/ZJcvCruZq5MTIieQo9sUAw

image.png

Vime是一个可定制,可扩展,可访问且与框架无关的媒体播放器。

✨ 特性

  • 🎥 多提供商支持(HTML5,HLS,YouTube,Vimeo等)。
  • 👑 一个API来统治一切!下次你需要播放器时,不要再重新学习任何东西。
  • ♾️ 避免在媒体相关API上的跨浏览器差异,如全屏和画中画。
  • 👐 通过ARIA角色/状态/属性和键盘支持,所有人都可以访问。
  • 🌎 国际化支持
  • 🖥 设计时兼顾了移动设备和台式机。
  • 👌 触摸输入友好。
  • 🎨 使用CSS变量来设计任何你想要的风格,包括默认的浅色和深色主题。
  • 🏎️ 性能上采用预连接+开箱即用的懒加载组件和媒介。
  • 🧩 轻松构建自己的组件并扩展Vime。
  • 🗑️ 轻量级-独立的〜25kB(gzip),使用默认的Vime UI的〜47kB。
  • 🧰 很棒的默认自定义UI,用于音频/视频/流媒体。
  • 🛠 具有大量属性,方法和事件的综合播放器API。
  • 💪 用TypeScript构建,所以你可以享受完全类型化的组件。
  • 🏠 借助Web组件,可以在家中使用HTML / CSS / JS。
  • 🏗️ 针对React、Vue、Svelte、Stencil和Angular的框架特定绑定。

    🍭 示例

    下面的例子使用的是Web组件,但也有React、Vue、Svelte、Stencil和Angular的绑定。如果你想看看它们的外观,请查看我们的Demo。

    1. <vime-player autoplay muted>
    2. <vime-video poster="/media/poster.png" cross-origin>
    3. <!-- 为什么是"data-src"?懒加载使用,如果你不需要它,你可以随时使用 src。-->
    4. <source data-src="/media/video.mp4" type="video/mp4" />
    5. <track
    6. default
    7. kind="subtitles"
    8. src="/media/subs/en.vtt"
    9. srclang="en"
    10. label="English"
    11. />
    12. </vime-video>
    13. <!-- 加载默认的Vime UI。-->
    14. <vime-default-ui />
    15. </vime-player>
    16. 复制代码

    原生UI?

    1. <!-- 在这里,我们要求使用原生控件。-->
    2. <vime-player autoplay muted controls>
    3. <vime-audio cross-origin>
    4. <source data-src="/media/audio.mp3" type="audio/mp3" />
    5. </vime-audio>
    6. </vime-player>
    7. 复制代码

    自定义UI?

    1. <!-- 我们在整个播放器中添加一点色彩。-->
    2. <vime-player autoplay muted style="--vm-player-theme: #1873d3">
    3. <!-- 加载YouTube视频。-->
    4. <vime-youtube video-id="DyTCOwB0DVw" />
    5. <vime-ui>
    6. <vime-click-to-play />
    7. <vime-captions />
    8. <vime-poster />
    9. <vime-spinner />
    10. <vime-default-settings />
    11. <vime-controls pin="bottomLeft" active-duration="2750" full-width>
    12. <!--
    13. 这些都是可以轻松自定义的预定义控件,你也可以完全从头构建自己的控件。
    14. -->
    15. <vime-playback-control tooltip-direction="right" />
    16. <vime-volume-control />
    17. <vime-time-progress />
    18. <vime-control-spacer />
    19. <vime-caption-control />
    20. <vime-pip-control keys="p" />
    21. <vime-settings-control />
    22. <vime-fullscreen-control keys="f" tooltip-direction="left" />
    23. </vime-controls>
    24. </vime-ui>
    25. </vime-player>
    26. 复制代码

    🏗️ 框架

    有以下特定于框架的绑定:

  • React

  • Vue
  • Svelte
  • Stencil
  • Angular

请记住,Vime的核心仍然是简单的Web组件。即使你的框架没有在上面的列表中提到,它也很可能原生支持Vime。你可以在这里检查你的框架是否对Web组件有完整的支持。

custom-elements-everywhere.com/

还有一些通过以下方式加载和使用Vime的示例:

  • HTML
  • Rollup
  • Webpack
  • React
  • Vue 2
  • Vue 3
  • Svelte
  • Stencil
  • Angular

image.png

🖥️ 浏览器支持

Vime具有前瞻性思维,是为现代Web构建的。支持所有与ES6兼容的浏览器,下面列出了其中的一些。

  • Edge 79+
  • Firefox 68+
  • Chrome 61+
  • Safari 11+
  • iOS Safari 11+
  • Opera 48+

    🎥 Providers

  • HTML5

  • HLS
  • Dash
  • YouTube
  • Vimeo
  • Dailymotion

    获取地址:请在公众号对话框中回复关键字:20201202


开源推荐系列

作者:杭州程序员张张
链接:https://juejin.cn/post/6906404241271848967
来源:掘金