返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解vue3中如何使用shaka-player
  • 399
分享到

详解vue3中如何使用shaka-player

2024-04-02 19:04:59 399人浏览 泡泡鱼
摘要

目录正文开始使用做成组件shakaPlayer使用方式注意事项正文 Shaka Player 是谷歌公司对外开源的一款 javascript 类库,详细请看谷歌官方api文档。 开始

正文

Shaka Player 是谷歌公司对外开源的一款 javascript 类库,详细请看谷歌官方api文档。

开始使用

我们可以使用 npm 下载

npm i shaka-player

做成组件shakaPlayer

<script setup>
import { ref, watch, onMounted, onBeforeUnmount } from "Vue";
import shaka from "shaka-player/dist/shaka-player.ui.js";
import "../../node_modules/shaka-player/dist/controls.CSS"; // 注意路径
const props = defineProps({
  src: { type: String, required: true },
  poster: { type: String, default: "" },
  autoplay: { type: Boolean, default: false }
});
onMounted(() => {
  initApp();
});
onBeforeUnmount(() => {
  player && player.destroy();
});
const initApp = () => {
  if (shaka.Player.isBrowserSupported()) {
    initPlayer();
  } else {
    console.error("Browser not supported!");
  }
};
const videoPlayer = ref();
const videoContainer = ref();
let player = null;
const initPlayer = () => {
  player = new shaka.Player(videoPlayer.value);
  const ui = new shaka.ui.Overlay(
    player,
    videoContainer.value,
    videoPlayer.value
  );
  ui.configure({
    // 自定义控件
    controlPanelElements: [
      "time_and_duration", // 进度
      "spacer",
      "mute", // 静音
      "volume", // 音量
      "fullscreen", // 全屏
      "overflow_menu"
    ],
    overflowMenuButtons: [
      "picture_in_picture", // 画中画
      "playback_rate" // 倍速
    ],
    playbackRates: [0.5, 1, 1.5, 2], // 倍速选项
    // 视频进入全屏时设备是否应旋转到横向模式
    forceLandscapeOnFullscreen: false
  });
  loadPlayer();
};
const loadPlayer = async () => {
  try {
    await player.load(props.src);
  } catch (e) {
    onError(e);
  }
};
const onError = (error) => {
  console.error("Error code", error.code, "object", error);
};
const play = () => videoPlayer.value && videoPlayer.value.play();
const pause = () => videoPlayer.value && videoPlayer.value.pause();
watch(
  () => props.src,
  () => initPlayer()
);
defineExpose({ play, pause });
</script>
<template>
  <div ref="videoContainer" class="max-w-full">
    <video
      ref="videoPlayer"
      class="full"
      :poster="poster"
      :autoplay="autoplay"
      muted
    ></video>
  </div>
</template>
<style scoped>
.max-w-full {
  max-width: 100%;
}
.full {
  width: 100%;
  height: 100%;
}
</style>

使用方式

<shaka-player
  class="video"
  :src="src"
  :poster="poster"
  autoplay
></shaka-player>
.video {
  width: 100%;
  height: 200px;
}

注意事项

默认视频控件是显示所有的,允许我们自定义。

我们可以直接使用 video 原生方法、事件和属性。

宽高可以用class样式设置。

Shaka Player不支持Vue响应对象,player 不能用 ref 来声明。

移动端视频默认静音时,autoplay 才会生效。

以上就是详解vue3中如何使用shaka-player的详细内容,更多关于vue3使用shaka-player的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解vue3中如何使用shaka-player

本文链接: https://lsjlt.com/news/168036.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解vue3中如何使用shaka-player
    目录正文开始使用做成组件shakaPlayer使用方式注意事项正文 Shaka Player 是谷歌公司对外开源的一款 JavaScript 类库,详细请看谷歌官方API文档。 开始...
    99+
    2024-04-02
  • 详解vue3中如何使用youtube-player
    目录正文开始使用做成组件youtubePlayer使用方式注意事项常用参数常用API正文 youtube-player 是 YouTube IFrame Player API&nbs...
    99+
    2024-04-02
  • 一文详解如何在Vue3中使用jsx/tsx
    目录JSX 如何用插值条件渲染(v-if)列表循环(v-for)事件绑定事件修饰符v-model插槽最后我们都知道,通常情况下我们使用 vue 大多都是用的 SFC(Signle F...
    99+
    2023-03-23
    Vue3使用jsx/tsx Vue3 jsx/tsx Vue jsx tsx
  • 一文详解如何在Vue3+Vite中使用JSX
    目录JSX介绍在 Vue3 中使用 JSX安装插件(@vitejs/plugin-vue-jsx)新建 jsx 文件语法补充知识:注意事项总结JSX介绍 JSX(JavaScript...
    99+
    2023-02-16
    vue3 vite使用jsx vue3+vite 前端 vite搭建vue3
  • 详解Vue3中Teleport的使用
    目录Teleport 的目的 Teleport 是怎样工作的 在本文中,我们将介绍: Teleport 的目的 Teleport 的例子 一些很有意思的代码...
    99+
    2024-04-02
  • Vue3中watch的使用详解
    目录Vue3中watch的详解Vue2使用watchVue3使用watch情况1情况2情况3情况4情况5特殊情况Vue3中watch的详解 Vue2使用watch <templ...
    99+
    2022-11-16
    Vue3 watch Vue3 中的watch Vue watch详解
  • Vue3中如何使用异步请求示例详解
    目录1、前言2、快速开始2.1、思路2.2、安装&封装axios2.3、设计接口2.4、设计视图2.5、最终效果总结1、前言 接上节,我们初步体验了layui-vue的用法。...
    99+
    2024-04-02
  • 如何在vue3中优雅的使用jsx/tsx详解
    目录前言安装插件(@vitejs/plugin-vue-jsx)1、插值2、class与style 绑定3、条件渲染4、列表渲染5、事件处理6、v-model7、slot插槽8、使用...
    99+
    2024-04-02
  • Vue3中watch监听使用详解
    目录Vue2使用watchVue3使用watch情况1情况2情况3情况4情况5特殊情况 总结Vue2使用watch <template> <div&g...
    99+
    2022-11-13
    vue3.0 watch vue3 watch vue中watch的使用
  • 图文详解如何在vue3+vite项目中使用svg
    今天在vue3+vite项目练习中,在使用svg时,发现之前的写法不能用,之前的使用方法参考vue2中优雅的使用svg const req = require.context('...
    99+
    2024-04-02
  • 如何使用vite搭建vue3项目详解
    目录一:npm构建二:更改http://localhost:3000/到8080与Network路由访问三:配置vite别名(npm install @types/node --sa...
    99+
    2024-04-02
  • 在Vue3中如何更优雅的使用echart图表详解
    目录前言封装思路引入模块封装功能使用例子总结前言 在大屏可视化项目中,我们常常需要用到很多的图表组件,通常你会编写很多的option对图表进行渲染,以及引入它们所需的一些组件并使用e...
    99+
    2024-04-02
  • 详解Vue3+Vite中怎么使用JSX
    虽然 jsx 最早是由 React 引入,但实际上 JSX 语法并没有定义运行时语义,并且能被编译成各种不同的输出形式。如果你之前使用过 JSX 语法,那么请注意 Vue 的 JSX 编译方式与 React 中 JSX 的编译方式不同,因此...
    99+
    2023-05-14
    Vue vue3 vite JSX
  • Vue3中使用Supabase Auth方法详解
    目录引言安装Supabase设置Supabase创建一个AuthUser组合创建页面注册.vueEmailConfirmation.vue登录.vuForgotPassword.vu...
    99+
    2024-04-02
  • 详解Vue3中shallowRef和shallowReactive的使用
    目录shallowRef 和 shallowReactive使用 shallowReactive 非深度监听使用 shallowRef 非深度监听嗯,怎么说呢,其实这两个函数并不是很...
    99+
    2024-04-02
  • Vue3中TypeScript 如何使用
    今天就跟大家聊聊有关Vue3中TypeScript 如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何声明字段名为枚举的类型?根据设计,ty...
    99+
    2024-04-02
  • vue3中如何使用ts
    目录如何使用tsapp.vueheader.vuelist.vuelistitem.vuefooter.vue如何使用ts 在创建vue脚手架的时候吧typescript选上 app...
    99+
    2024-04-02
  • vue3中cookie如何使用
    前言cookie使用最多的地方想必是保存用户的账号与密码,可以避免用户每次登录时都要重新输入1.vue中cookie的安装在终端中输入命令npm install vue-cookies --save,即可安装cookies,安装之后在mai...
    99+
    2023-05-14
    cookie Vue3
  • vue3中如何使用JSX
    这篇文章主要介绍了vue3中如何使用JSX的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用JSX文章都会有所收获,下面我们一起来看看吧。在绝大多数情况下,Vue 推荐使用模板<templa...
    99+
    2023-07-04
  • Vue3中如何使用TypeScript
    这篇文章主要介绍“Vue3中如何使用TypeScript”,在日常操作中,相信很多人在Vue3中如何使用TypeScript问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中如何使用TypeScript...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作