最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vue3中如何使用youtube-player

 更新時間:2022年09月21日 09:02:39   作者:簡單卟容易  
這篇文章主要為大家介紹了詳解vue3中如何使用youtube-player示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

youtube-playerYouTube IFrame Player API (YIPA) 的封裝??梢栽谧约壕W(wǎng)站上播放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,需要做響應式的要自己動態(tài)獲取寬高在重新設置。

常用參數(shù)

參數(shù) 
autoplay是否在播放器加載時自動開始播放初始視頻。支持的值為 0 或 1。默認值為 0。
controls視頻播放器控件是否會顯示。支持的值為 0 或 1。默認值為 1。
fs視頻播放器全屏按鈕是否會顯示。支持的值為 0 或 1。默認值為 1。
loop視頻是否會循環(huán)播放。支持的值為 0 或 1。默認值為 0。
playsinline此參數(shù)用于控制視頻在 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的資料請關注腳本之家其它相關文章!

相關文章

  • 淺談vue中關于checkbox數(shù)據(jù)綁定v-model指令的個人理解

    淺談vue中關于checkbox數(shù)據(jù)綁定v-model指令的個人理解

    這篇文章主要介紹了淺談vue中關于checkbox數(shù)據(jù)綁定v-model指令的個人理解,v-model用于表單的數(shù)據(jù)綁定很常見,下面就來詳細的介紹一下
    2018-11-11
  • 基于vue-cli3+typescript的tsx開發(fā)模板搭建過程分享

    基于vue-cli3+typescript的tsx開發(fā)模板搭建過程分享

    這篇文章主要介紹了搭建基于vue-cli3+typescript的tsx開發(fā)模板,本文通過實例代碼截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • vue.js前端網(wǎng)頁彈框異步行為示例分析

    vue.js前端網(wǎng)頁彈框異步行為示例分析

    這篇文章主要為大家介紹了vue.js前端網(wǎng)頁彈框異步的行為示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步,早日升職加薪
    2021-11-11
  • 基于vue實現(xiàn)多功能樹形結構組件的示例代碼

    基于vue實現(xiàn)多功能樹形結構組件的示例代碼

    一個優(yōu)雅展示樹形結構數(shù)據(jù)的 Vue 組件,遞歸渲染每個節(jié)點及其子節(jié)點,支持自定義顏色、文本和布局,通過獨特的樣式巧妙處理不同層級,為用戶打造豐富的視覺盛宴,文中通過代碼給大家介紹的非常詳細,感興趣的同學可以自己動手嘗試一下
    2024-02-02
  • vue使用路由router-view的詳細代碼

    vue使用路由router-view的詳細代碼

    這篇文章主要介紹了vue使用路由router-view的相關知識,其原理就是采用?SPA(single-page-application)?模式,就是只有一個?Web?頁面的應用,通過?router?來控制頁面的刷新和迭代,感興趣的朋友一起看看吧
    2023-12-12
  • 詳解.vue文件中監(jiān)聽input輸入事件(oninput)

    詳解.vue文件中監(jiān)聽input輸入事件(oninput)

    本篇文章主要介紹了詳解.vue文件中監(jiān)聽input輸入事件(oninput),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue實現(xiàn)在表格里,取每行的id的方法

    vue實現(xiàn)在表格里,取每行的id的方法

    下面小編就為大家分享一篇vue實現(xiàn)在表格里,取每行的id的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 15 分鐘掌握vue-next函數(shù)式api(小結)

    15 分鐘掌握vue-next函數(shù)式api(小結)

    這篇文章主要介紹了15 分鐘掌握vue-next函數(shù)式api(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • vant中的Cascader級聯(lián)選擇異步加載地區(qū)數(shù)據(jù)方式

    vant中的Cascader級聯(lián)選擇異步加載地區(qū)數(shù)據(jù)方式

    這篇文章主要介紹了vant中的Cascader級聯(lián)選擇異步加載地區(qū)數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue實現(xiàn)漸變色進度條的代碼

    Vue實現(xiàn)漸變色進度條的代碼

    這篇文章主要介紹了Vue實現(xiàn)漸變色進度條的代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論

视频| 虹口区| 河北省| 湖口县| 灯塔市| 台湾省| 无为县| 靖边县| 乐陵市| 田阳县| 新和县| 莱州市| 深州市| 珠海市| 木里| 襄樊市| 盐边县| 辽宁省| 揭西县| 蓝山县| 乐山市| 云安县| 分宜县| 木里| 都匀市| 太康县| 祁阳县| 唐山市| 荆门市| 特克斯县| 陇南市| 白山市| 峨眉山市| 岗巴县| 肥城市| 东丽区| 宝应县| 黄梅县| 彰化市| 宜章县| 邢台县|