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

詳解vue3中如何使用shaka-player

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

正文

Shaka Player 是谷歌公司對(duì)外開源的一款 JavaScript 類庫,詳細(xì)請(qǐng)看谷歌官方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", // 進(jìn)度
      "spacer",
      "mute", // 靜音
      "volume", // 音量
      "fullscreen", // 全屏
      "overflow_menu"
    ],
    overflowMenuButtons: [
      "picture_in_picture", // 畫中畫
      "playback_rate" // 倍速
    ],
    playbackRates: [0.5, 1, 1.5, 2], // 倍速選項(xiàng)
    // 視頻進(jìn)入全屏?xí)r設(shè)備是否應(yīng)旋轉(zhuǎn)到橫向模式
    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;
}

注意事項(xiàng)

默認(rèn)視頻控件是顯示所有的,允許我們自定義。

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

寬高可以用class樣式設(shè)置。

Shaka Player不支持Vue響應(yīng)對(duì)象,player 不能用 ref 來聲明。

移動(dòng)端視頻默認(rèn)靜音時(shí),autoplay 才會(huì)生效。

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

相關(guān)文章

  • 使用WebStorm用Debug模式調(diào)試Vue等前端項(xiàng)目的步驟

    使用WebStorm用Debug模式調(diào)試Vue等前端項(xiàng)目的步驟

    WebStorm提供了更簡(jiǎn)單的前端調(diào)試方法,記錄一下WebStorm調(diào)試步驟啟動(dòng)前端項(xiàng)目,這篇文章主要介紹了使用WebStorm用Debug模式調(diào)試Vue等前端項(xiàng)目的步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • vue打開其他項(xiàng)目頁面并傳入數(shù)據(jù)詳解

    vue打開其他項(xiàng)目頁面并傳入數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于vue打開其他項(xiàng)目頁面并傳入數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue點(diǎn)擊按鈕實(shí)現(xiàn)讓頁面的某一個(gè)元素全屏展示

    vue點(diǎn)擊按鈕實(shí)現(xiàn)讓頁面的某一個(gè)元素全屏展示

    這篇文章主要介紹了vue點(diǎn)擊按鈕實(shí)現(xiàn)讓頁面的某一個(gè)元素全屏展示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vuejs 制作背景淡入淡出切換動(dòng)畫的實(shí)例

    vuejs 制作背景淡入淡出切換動(dòng)畫的實(shí)例

    今天小編就為大家分享一篇vuejs 制作背景淡入淡出切換動(dòng)畫的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue里面父組件修改子組件樣式的方法

    vue里面父組件修改子組件樣式的方法

    下面小編就為大家分享一篇vue里面父組件修改子組件樣式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue使用vue-video-player無法播放本地視頻的問題及解決

    vue使用vue-video-player無法播放本地視頻的問題及解決

    這篇文章主要介紹了vue使用vue-video-player無法播放本地視頻的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue狀態(tài)管理之使用Pinia代替Vuex

    Vue狀態(tài)管理之使用Pinia代替Vuex

    這篇文章主要介紹了Vue狀態(tài)管理。下面文章主要圍繞著使用Pinia代替Vuex的相關(guān)資料展開具體內(nèi)容,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-11-11
  • vue使用v-if v-show頁面閃爍,div閃現(xiàn)的解決方法

    vue使用v-if v-show頁面閃爍,div閃現(xiàn)的解決方法

    在頁面層次結(jié)構(gòu),數(shù)據(jù)較多的時(shí)候,用v-if或者v-show就會(huì)出現(xiàn)div閃現(xiàn),或者部分閃爍的結(jié)果。怎么處理這樣的問題呢,下面小編給大家?guī)砹藇ue使用v-if v-show頁面閃爍,div閃現(xiàn)的解決方法,一起看看吧
    2018-10-10
  • 在Vue中定義和調(diào)用過濾器的方法

    在Vue中定義和調(diào)用過濾器的方法

    過濾器(Filters)是 vue 為開發(fā)者提供的功能,常用于文本的格式化,這篇文章主要介紹了如何在Vue中定義和調(diào)用過濾器,需要的朋友可以參考下
    2023-09-09
  • vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式

    vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式

    這篇文章主要介紹了vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論

乡城县| 钦州市| 白山市| 同仁县| 宽甸| 彭水| 兰西县| 玛纳斯县| 泾源县| 汶川县| 车致| 根河市| 哈尔滨市| 三门县| 吉安市| 罗源县| 康平县| 岱山县| 青龙| 自治县| 且末县| 肇庆市| 苍山县| 岳池县| 昭通市| 建始县| 兰西县| 和平县| 景德镇市| 连山| 垣曲县| 赫章县| 肥乡县| 宾川县| 淄博市| 平凉市| 宜宾县| 甘孜| 盐城市| 福海县| 闸北区|