强烈推荐!无论什么框架都能用的视频组件

大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,或者一些限时福利,错过了就是错过了。所以建议大家加个星标,就能第一时间收到推送。大家好,我是「前端实验室」爱分享的了不起~

前端框架花样繁多,React,Vue,Angular、Svelte等等;框架不同,技术选型也不同,今天就给大家推荐一个视频播放器的组件,让你无论使用什么框架,都能够使用的媒体播放器——Vime

Vime

Vime是一个可定制,可扩展,可访问且与框架无关的媒体播放器。支持 HTML5、HLS、Dash、YouTube、Vimeo、Dailymotion…


特点

  • 开箱即用
  • 轻量级 – 独立约 25kB (gzip),默认 Vime UI 约 47kB。
  • 具有大量属性、方法和事件的  综合播放器 API 。
  • 使用 TypeScript 构建
  • 国际化友好支持
  • 适配移动端和桌面端
  • 支持自定义构建组件并扩展 Vime
  • 支持全屏和画中画
  • React、Vue、Svelte、Stencil 和 Angular 等框架都能使用,相同的API,学会一种全能使用

安装

使用CDN引入

<!-- Default theme. ~960B -->
<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/@vime/core@^5/themes/default.css"
/>


<!-- Optional light theme (extends default). ~400B -->
<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/@vime/core@^5/themes/light.css"
/>


<!-- Library and all of its components are lazy loaded, so nothing to sweat about here. ~3kB -->
<script
  type="module"
  src="https://cdn.jsdelivr.net/npm/@vime/core@^5/dist/vime/vime.esm.js"
></script>

React 安装

npm i @vime/core @vime/react

Vue 安装

# Vue 2
npm i @vime/core @vime/vue

# Vue 3
npm i @vime/core @vime/vue-next

使用

官方文档提供了demo示例,有React、Vue、Svelte、Stencil和Angular的绑定示例

<template>
  <Player
    theme="dark"
    style="--vm-player-theme: #e86c8b;"
  >

    <Video
      crossOrigin
      poster="https://media.vimejs.com/poster.png"
    >

      <source 
        data-src="https://media.vimejs.com/720p.mp4" 
        type="video/mp4"
      />

      <track 
        default 
        kind="subtitles" 
        src="https://media.vimejs.com/subs/english.vtt" 
        srclang="en" 
        label="English" 
      />

    </Video>

    <DefaultUi />
  </Player>

</template>
<script>
import { Player, Video, DefaultUi } from '@vime/
vue';
export default {
  components: {
    Player,
    Video,
    DefaultUi,
  },

使用自定义UI

<!-- 我们在整个播放器中添加一点色彩。-->
<vime-player autoplay muted style="--vm-player-theme: #1873d3">
  <!-- 加载YouTube视频。-->
  <vime-youtube video-id="DyTCOwB0DVw" />
  <vime-ui>
    <vime-click-to-play />
    <vime-captions />
    <vime-poster />
    <vime-spinner />
    <vime-default-settings />
    <vime-controls pin="bottomLeft" active-duration="2750" full-width>
      <!-- 
        这些都是可以轻松自定义的预定义控件,你也可以完全从头构建自己的控件。
      -->

      <vime-playback-control tooltip-direction="right" />
      <vime-volume-control />
      <vime-time-progress />
      <vime-control-spacer />
      <vime-caption-control />
      <vime-pip-control keys="p" />
      <vime-settings-control />
      <vime-fullscreen-control keys="f" tooltip-direction="left" />
    </vime-controls>
  </vime-ui>
</vime-player>


设置

“设置” 是一个弹出式菜单,其中包含用于配置播放器和媒体播放的选项。就像控件一样,开箱即用的常见设置,如播放速率、质量和字幕;当然你也可以创建自定义设置内容

<template>
  <Player>
    <!-- ... -->

    <DefaultUi noSettings>
      <Settings>
        <MenuItem label="Menu Item 1" badge="BADGE" @click="onMenuItem1Click" />

        <MenuItem label="Menu Item 2" hint="Hint" @click="onMenuItem2Click" />

        <Submenu label="Submenu 1" :hint="value">
          <MenuRadioGroup :value="value" @vCheck="onCheck">
            <MenuRadio label="Option 1" value="1" />
            <MenuRadio label="Option 2" value="2" />
            <MenuRadio label="Option 3" value="3" />
          </MenuRadioGroup>
        </Submenu>

        <Submenu label="Submenu 2"> Random content in here. </Submenu>
      </Settings>
    </DefaultUi>
  </Player>

</template>

<script>
  export default {
    data: {
      value: '1',
    },
    methods: {
      onMenuItem1Click() {
        console.log('Clicked menu item 1');
      },
      onMenuItem2Click() {
        console.log('Clicked menu item 2');
      },
      onCheck(event) {
        const radio = event.target;
        this.value = radio.value;
      },
    },
  };
</
script>

效果如下Vime 很适合在 Web 站点和应用程序上使用,具有灵活的设计和强大的功能,同时维护着庞大的生态圈。

Github地址:https://github.com/vime-js/vime

写在最后

欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~

未来已来,属于AI的新时代已经来临!

AI绘画是大时代的趋势,抓住它就是抓住新时代的红利!

最近我们团队推出了【AI绘画研究所】无论你是普通人群还是设计师都可以利用AI绘画来提升你的效率,赚钱!

当有机会来临的时候,我们可以尝试做很多事情,唯一不能做的就是什么都不做。不管你能想到什么,都去尝试一下。

欢迎和我一起加入AI绘画研究所,一起成为时代的弄潮儿!

限时加入赠送ChatGPT 账户!!!

不定期举行活动赠送Midjourney会员服务!

AI绘画研究所  第一期费用299元,现在星球早鸟价50元,每超过100 人就会涨价!快冲!!!

👇 加入星球,还可以为你提供什么服务?

如果该文章对你有帮助,那么就点击右下角的  [点赞]「在看」,给一个小小的鼓励吧~

本篇文章来源于微信公众号: 前端实验室


小白学堂 » 强烈推荐!无论什么框架都能用的视频组件

就聊挣钱,一个带着你做副业的社群。

立即查看 了解详情