亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解vue3中如何使用youtube-player

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

正文

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(已結(jié)束)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>

注意事項(xiàng)

播放器有默認(rèn)寬高,只能是px,需要做響應(yīng)式的要自己動(dòng)態(tài)獲取寬高在重新設(shè)置。

常用參數(shù)

參數(shù) 
autoplay是否在播放器加載時(shí)自動(dòng)開始播放初始視頻。支持的值為 0 或 1。默認(rèn)值為 0。
controls視頻播放器控件是否會(huì)顯示。支持的值為 0 或 1。默認(rèn)值為 1。
fs視頻播放器全屏按鈕是否會(huì)顯示。支持的值為 0 或 1。默認(rèn)值為 1。
loop視頻是否會(huì)循環(huán)播放。支持的值為 0 或 1。默認(rèn)值為 0。
playsinline此參數(shù)用于控制視頻在 iOS 設(shè)備上的 HTML5 播放器中播放時(shí),是以內(nèi)嵌方式還是全屏模式播放。支持的值為 0 或 1。默認(rèn)值為 0 全屏。

常用API

player.playVideo() 播放當(dāng)前已插入/已加載的視頻。

player.pauseVideo() 暫停當(dāng)前正在播放的視頻。

player.stopVideo() 停止和取消加載當(dāng)前視頻。

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

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

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

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

以上就是詳解vue3中如何使用youtube-player的詳細(xì)內(nèi)容,更多關(guān)于vue3使用youtube-player的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue實(shí)現(xiàn)table列表項(xiàng)上下移動(dòng)的示例代碼

    Vue實(shí)現(xiàn)table列表項(xiàng)上下移動(dòng)的示例代碼

    本文主要介紹了Vue實(shí)現(xiàn)table列表項(xiàng)上下移動(dòng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Vue.js $refs用法案例詳解

    Vue.js $refs用法案例詳解

    這篇文章主要介紹了Vue.js $refs用法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 解析vue?3.0?使用axios庫發(fā)起?post?get?的配置過程

    解析vue?3.0?使用axios庫發(fā)起?post?get?的配置過程

    get post 請(qǐng)求開發(fā)中最普通最常見的請(qǐng)求方式但是在vue中如何實(shí)現(xiàn)呢 這里記錄一下配置過程,對(duì)vue?使用axios發(fā)起?post?get配置過程感興趣的朋友一起看看吧
    2022-05-05
  • vue如何通過日期篩選數(shù)據(jù)

    vue如何通過日期篩選數(shù)據(jù)

    這篇文章主要介紹了vue如何通過日期篩選數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于Vue中點(diǎn)擊組件外關(guān)閉組件的實(shí)現(xiàn)方法

    基于Vue中點(diǎn)擊組件外關(guān)閉組件的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇基于Vue中點(diǎn)擊組件外關(guān)閉組件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 詳解vue中使用protobuf踩坑記

    詳解vue中使用protobuf踩坑記

    這篇文章主要介紹了vue中使用protobuf踩坑記,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的示例代碼

    Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的示例代碼

    這篇文章主要詳細(xì)介紹了Vue3使用ref與reactive創(chuàng)建響應(yīng)式對(duì)象的方法步驟,文中通過代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-02-02
  • 監(jiān)聽element-ui table滾動(dòng)事件的方法

    監(jiān)聽element-ui table滾動(dòng)事件的方法

    這篇文章主要介紹了監(jiān)聽element-ui table滾動(dòng)事件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue-devtools 打開源碼位置實(shí)現(xiàn)過程

    vue-devtools 打開源碼位置實(shí)現(xiàn)過程

    這篇文章主要為大家介紹了vue-devtools 打開源碼位置實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vue 自動(dòng)檢測手機(jī)端響應(yīng)式布局的五種實(shí)現(xiàn)

    vue 自動(dòng)檢測手機(jī)端響應(yīng)式布局的五種實(shí)現(xiàn)

    本文主要介紹了vue自動(dòng)檢測手機(jī)端響應(yīng)式布局,可以通過結(jié)合 CSS 媒體查詢、Vue 的動(dòng)態(tài)數(shù)據(jù)綁定、適當(dāng)?shù)牡谌綆?、PostCSS 插件以及正確的視口設(shè)置實(shí)現(xiàn),感興趣的可以了解一下
    2024-07-07

最新評(píng)論