iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解vue3中如何使用youtube-player
  • 173
分享到

详解vue3中如何使用youtube-player

2024-04-02 19:04:59 173人浏览 安东尼
摘要

目录正文开始使用做成组件youtubePlayer使用方式注意事项常用参数常用api正文 youtube-player 是 YouTube IFrame Player API&nbs

正文

youtube-player 是 YouTube IFrame Player API (YIPA) 的封装。可以在自己网站上播放YouTube视频。

开始使用

使用 npm 下载

npm i youtube-player

做成组件youtubePlayer

<script setup>
import { ref, watch, onMounted, onBeforeUnmount } from "Vue";
import YouTubePlayer from "youtube-player";
const props = defineProps({
  id: { type: String, default: "" },
  src: { type: String, required: true },
  width: { type: Number, default: 0 },
  height: { type: Number, default: 0 }
});
const emit = defineEmits(["ended", "play", "pause"]);
onMounted(() => {
  initPlayer();
  loadPlayer();
});
onBeforeUnmount(() => {
  player && player.destroy();
});
const getVideoId = () => {
  try {
    const url = new URL(props.src);
    return url.searchParams.get("v") || "";
  } catch (error) {
    return "";
  }
};
let player = null;
const initPlayer = () => {
  try {
    player = YouTubePlayer(`youtube-${props.id}`, {
      host: "https://www.youtube.com",
      width: props.width,
      height: props.height,
      videoId: getVideoId(),
      playsinline: 1,
      rel: 0
    });
  } catch (error) {
    console.log(error);
  }
};
const loadPlayer = () => {
  try {
    player.loadVideoById(getVideoId());
  } catch (error) {
    console.log(error);
  }
};
const play = () => player && player.playVideo();
const pause = () => player && player.pauseVideo();
// -1(未开始)0(已结束)1(正在播放)2(已暂停)3(正在缓冲)5(视频已插入)
let stateChangeListener;
const addStateChange = () => {
  stateChangeListener = player?.on("stateChange", (event) => {
    if (event.data === 0) emit("ended");
    if (event.data === 1) emit("play");
    if (event.data === 2) emit("pause");
  });
};
const removeStateChange = () => {
  if (stateChangeListener) player?.off(stateChangeListener);
};
watch(
  () => props.src,
  () => loadPlayer()
);
defineExpose({ play, pause });
</script>
<template>
  <div class="youtube-video">
    <div :id="'youtube-' + id"></div>
  </div>
</template>
<style lang="sCSS" scoped>
.youtube-video {
  width: 100%;
  overflow: hidden;
}
</style>

使用方式

<youtube-player src="Https://www.youtube.com/watch?v=uRzs2kS3Blg"></youtube-player>

注意事项

播放器有默认宽高,只能是px,需要做响应式的要自己动态获取宽高在重新设置。

常用参数

参数 
autoplay是否在播放器加载时自动开始播放初始视频。支持的值为 0 或 1。默认值为 0。
controls视频播放器控件是否会显示。支持的值为 0 或 1。默认值为 1。
fs视频播放器全屏按钮是否会显示。支持的值为 0 或 1。默认值为 1。
loop视频是否会循环播放。支持的值为 0 或 1。默认值为 0。
playsinline此参数用于控制视频在 iOS 设备上的 HTML5 播放器中播放时,是以内嵌方式还是全屏模式播放。支持的值为 0 或 1。默认值为 0 全屏。

常用API

player.playVideo() 播放当前已插入/已加载的视频。

player.pauseVideo() 暂停当前正在播放的视频。

player.stopVideo() 停止和取消加载当前视频。

player.mute() 使播放器静音。

player.unMute() 取消播放器静音。

player.setSize(width:Number, height:Number) 设置包含播放器的<iframe>的大小。

player.destroy() 移除包含播放器的 <iframe>

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

--结束END--

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

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解vue3中如何使用youtube-player
    目录正文开始使用做成组件youtubePlayer使用方式注意事项常用参数常用API正文 youtube-player 是 YouTube IFrame Player API&nbs...
    99+
    2024-04-02
  • 详解vue3中如何使用shaka-player
    目录正文开始使用做成组件shakaPlayer使用方式注意事项正文 Shaka Player 是谷歌公司对外开源的一款 JavaScript 类库,详细请看谷歌官方API文档。 开始...
    99+
    2024-04-02
  • python如何使用youtube-dl下载YouTube视频
    这篇文章给大家分享的是有关python如何使用youtube-dl下载YouTube视频的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用youtube-dl下载YouTube视频你可以使用Python中的you...
    99+
    2023-06-27
  • 一文详解如何在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中优雅的使用jsx/tsx详解
    目录前言安装插件(@vitejs/plugin-vue-jsx)1、插值2、class与style 绑定3、条件渲染4、列表渲染5、事件处理6、v-model7、slot插槽8、使用...
    99+
    2024-04-02
  • Vue3中如何使用异步请求示例详解
    目录1、前言2、快速开始2.1、思路2.2、安装&封装axios2.3、设计接口2.4、设计视图2.5、最终效果总结1、前言 接上节,我们初步体验了layui-vue的用法。...
    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
  • 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+Vite中怎么使用JSX
    虽然 jsx 最早是由 React 引入,但实际上 JSX 语法并没有定义运行时语义,并且能被编译成各种不同的输出形式。如果你之前使用过 JSX 语法,那么请注意 Vue 的 JSX 编译方式与 React 中 JSX 的编译方式不同,因此...
    99+
    2023-05-14
    Vue vue3 vite JSX
  • 在Vue3中如何更优雅的使用echart图表详解
    目录前言封装思路引入模块封装功能使用例子总结前言 在大屏可视化项目中,我们常常需要用到很多的图表组件,通常你会编写很多的option对图表进行渲染,以及引入它们所需的一些组件并使用e...
    99+
    2024-04-02
  • vue3中如何使用ts
    目录如何使用tsapp.vueheader.vuelist.vuelistitem.vuefooter.vue如何使用ts 在创建vue脚手架的时候吧typescript选上 app...
    99+
    2024-04-02
  • Vue3中如何使用TypeScript
    这篇文章主要介绍“Vue3中如何使用TypeScript”,在日常操作中,相信很多人在Vue3中如何使用TypeScript问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中如何使用TypeScript...
    99+
    2023-07-06
  • Vue3中TypeScript 如何使用
    今天就跟大家聊聊有关Vue3中TypeScript 如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何声明字段名为枚举的类型?根据设计,ty...
    99+
    2024-04-02
  • vue3中如何使用JSX
    这篇文章主要介绍了vue3中如何使用JSX的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用JSX文章都会有所收获,下面我们一起来看看吧。在绝大多数情况下,Vue 推荐使用模板<templa...
    99+
    2023-07-04
  • Vue2和Vue3如何使用watch侦听器详解
    watch:侦听数据变化 (某个值的change事件) vue2.x data(){ return{ num:10 } }, watc...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作