nuxt视频播放(踩坑)

news2024/11/17 23:35:40

展示效果:

nuxt样例视频

1.安装vue-video-player插件

①执行命令 npm i vue-video-player 或者 npm i vue-video-player@5.0.2 后者直接安装对应版本号的插件
安装完之后 执行npm i
③安装不对应的版本会报错
注意安装版本 不是vue3.0的 请安装(“vue-video-player”: “^5.0.2”)
以下是我的版本:
在这里插入图片描述

2,在plugins目录下新建video.js文件夹

在这里插入图片描述

3,在video.js里引入

import Vue from 'vue'
const VueVideoPlayer = require('vue-video-player/dist/ssr')
Vue.use(VueVideoPlayer)

在这里插入图片描述

4,在nuxt.config.js文件中引入以下内容

css: ['video.js/dist/video-js.css']


plugins: [{ src: '~plugins/video.js', ssr: false }]

在这里插入图片描述

5,在components组件文件夹下 新建一个视频组件页面

在这里插入图片描述

6,页面中添加以下代码

(组件页面全部复制粘贴就好了,后面根据自己的需求做调整)

<template>
  <section class="vueVideo">
    <div
      v-video-player:myVideoPlayer="playerOptions"
      class="video-player-box"
      :playsinline="playsinline"
      @play="onPlayerPlay($event)"
      @pause="onPlayerPause($event)"
      @ended="onPlayerEnded($event)"
      @loadeddata="onPlayerLoadeddata($event)"
      @waiting="onPlayerWaiting($event)"
      @playing="onPlayerPlaying($event)"
      @timeupdate="onPlayerTimeupdate($event)"
      @canplay="onPlayerCanplay($event)"
      @canplaythrough="onPlayerCanplaythrough($event)"
      @ready="playerReadied"
      @statechanged="playerStateChanged($event)"
    ></div>
  </section>
</template>

<script>
import 'video.js/dist/video-js.css'
import 'vue-video-player/src/custom-theme.css'
const video = require('../../static/img/v01.mp4')
export default {
  data() {
    return {
      playsinline: true,
      playerOptions: {
        // 播放器配置
        muted: true, // 是否静音
        language: 'zh-CN',// 语言
        // aspectRatio: '16:9',// 视频比例
        playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度可选列表
        controls: true,
        preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)。
        autoplay:true,// 是否等浏览器准备好后自动播放
        loop:true,// 结束后是否重新开始
        fluid: true,// 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
        sources: [// 播放视频源
          {
             type: 'video/mp4',
             src:
            //  video
            'http://vjs.zencdn.net/v/oceans.mp4'
           }
        ],
        poster: '', // 封面图
        notSupportedMessage: '此视频暂无法播放,请稍后再试',
        controlBar: {
          //当前时间和持续时间的分隔符
          timeDivider: false,
          //显示持续时间
          durationDisplay: false,
          //是否显示剩余时间功能
          remainingTimeDisplay: false,
          //全屏按钮
          fullscreenToggle: false,
          //播放暂停按钮
          playToggle: false,
          //音量控制
          volumeMenuButton: false,
          //当前播放时间
          currentTimeDisplay: false,
          //点播流时,播放进度条,seek控制
          progressControl: false,
          //直播流时,显示LIVE
          liveDisplay: false,
          //播放速率,当前只有html5模式下才支持设置播放速率
          playbackRateMenuButton: false
        }

      }
    }
  },
  mounted() {
    console.log('this is current player instance object', this.myVideoPlayer)
    this.myVideoPlayer.play();// 这些都是让视频自动播放的
    
  },
  methods: {
    // 监听播放
    onPlayerPlay(player) {
      // console.log('player play!', player)
      this.myVideoPlayer.play();
    },
    // 监听暂停
    onPlayerPause(player) {
      // console.log('player pause!', player)
      this.myVideoPlayer.play();
    },
    // 监听停止
    onPlayerEnded(player) {
      // console.log('player ended!', player)
      this.myVideoPlayer.play();
    },
    // 监听加载完成
    onPlayerLoadeddata(player) {
      // console.log('player Loadeddata!', player)
    },
    // 监听视频缓存等待
    onPlayerWaiting(player) {
      // console.log('player Waiting!', player)
    },
    // 监听视频暂停后播放
    onPlayerPlaying(player) {
      // console.log('player Playing!', player)
    },
    // 监听视频播放时长更新
    onPlayerTimeupdate(player) {
      // console.log('player Timeupdate!', player.currentTime())
    },
    onPlayerCanplay(player) {
      console.log('player Canplay!', player)
    },
    onPlayerCanplaythrough(player) {
      // console.log('player Canplaythrough!', player)
    },
    // 监听状态改变
    playerStateChanged(playerCurrentState) {
      // console.log('player current update state', playerCurrentState)
    },
    // 监听播放器准备就绪
    playerReadied(player) {
      // console.log('example 01: the player is readied', player)
    }
  }
}
</script>

<style lang="scss" >
//这俩样式是隐藏播放按钮的
.vjs-big-play-button,
.vjs-control-bar{
    display: none !important;
}
</style>

7,组件的使用

直接在页面调用这个组件名
在这里插入图片描述
nuxt路由是自动生成的 可以在项目中的 .nuxt文件夹下的components的文件夹下的index.js文件中 直接找到这个组件名称(页面中的所有组件的名称都可以在这里找到)
在这里插入图片描述
调用完之后 执行 npm run dev查看页面

注意:
如果以上操作完之后,还报错的话,建议把node_modules文件包删除掉,重新执行一遍npm i(否则的话就是你的版本对应的不对)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/563519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【nginx】同一接口有时返回500(client_body_temp)

问题描述&#xff1a; 同一个接口&#xff0c;有能正常访问并返回的&#xff0c;有的访问未到服务器直接返回500。 查看nginx日志&#xff08;error.log&#xff09;&#xff0c;发现open() "/nginx/client_body_temp/0000476534" failed (13: Permission denied)报…

java的URL类

文章目录 1. 简介2. 创建URL3. 从URL获取数据4. 分解URL5. 相等性和比较 1. 简介 java.net.URL类是对统一资源定位符的抽象。它扩展了Object类&#xff0c;是一个final类&#xff0c;不能对其派生子类。它不依赖于继承来配置不同的URL实例&#xff0c;而使用了策略设计模式&am…

VivadoIO约束

VivadoIO约束 FPGA开发离不开IO约束和时序约束&#xff0c;IO约束用于确定输入/输出端口的物理端口和电气特性&#xff0c;与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性&#xff0c;以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置…

编码踩坑——Redis Pipeline中调用Lua脚本报错JedisMoveDataException的问题 / Lua脚本常遇到的问题

本篇记录使用Redis Pipeline时&#xff0c;调用redis.clients.jedis.PipelineBase#eval时&#xff0c;报错JedisMoveDataException的问题&#xff1b;通过查看源码发现问题的原因&#xff0c;通过jedis在Github的issue了解了解决方案&#xff1b;涉及知识&#xff1a;Redis slo…

FP独立站支付问题你还没解决?out了!

目前FP独立站是很多跨境卖家的变现方式&#xff0c;但是这类外贸电商会遇到一些收款问题&#xff0c;这些问题很容易就让卖家的资金被冻结、账号被风控、关联账号被限制&#xff0c;损失真是不小。那FP卖家的收款问题该怎么解决呢&#xff1f;往下看。 一、FP独立站常见收款方式…

抖音账号运营技巧,让你的短视频更火爆

抖音是目前最火爆的短视频平台之一&#xff0c;拥有着庞大的用户群体和广阔的市场前景。在这个平台上&#xff0c;每天都有大量的用户在发布自己的短视频内容&#xff0c;让自己的账号脱颖而出并吸引更多的粉丝&#xff0c;成为每个用户所追求的目标。下面就来介绍一些抖音账号…

新用户如何选择WMS仓储管理系统解决方案

引言&#xff1a;随着现代化物流技术的不断发展&#xff0c;WMS仓储管理系统已成为企业管理的重要工具。一款合适的WMS系统可以帮助企业提高库存管理效率、减少库存成本、提升物流服务质量。对于初学者来说&#xff0c;如何选择适合自己的WMS系统&#xff0c;往往是一项挑战。本…

如何做好app的测试工作?一文6个步骤到你秒变APP测试高手

先说结论: 想要做好 APP 的测试工作, 离不开相对完整的测试要点! 本篇文章不仅有完整的App测试介绍&#xff0c;还有相对完整的App测试视频分享。 闲话少叙, 咱们直奔主题, APP 应用测试应该主要包含以下几个方面的测试要点: 需要注意的是: APP 应用测试是个相对繁杂的测试类…

电脑远程连接软件推荐

您可以考虑使用多种可靠的计算机远程连接软件选项来远程连接和控制计算机。 以下是一些流行的选项&#xff1a; TeamViewer TeamViewer 是一种广泛使用的远程访问软件&#xff0c;以其易用性和跨平台兼容性而闻名。 它提供远程控制、文件传输和桌面共享等功能。 TeamViewer 通…

解密JavaScript混淆加密技术:揭秘隐藏的代码之谜

让我们通过一个案例来更好地理解JavaScript混淆加密的工作原理。假设我们有以下原始的JavaScript代码&#xff1a; function addNumbers(a, b) {return a b; }上述代码非常简单易懂&#xff0c;但对于一些恶意攻击者来说&#xff0c;他们可能会试图窃取您的代码或者修改其中的…

终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)

1、在线学习 实时获得一个新样本就进行一次模型更新。显然&#xff0c;在线学习时增量学习的特例&#xff0c;而增量学习可视为“批模式”的在线/离线学习。 online主要相对于offline或者说batch&#xff0c;强调的是每次只进入一个或者很少的几个样本&#xff0c;多见于推荐…

缓存被穿透了怎么办?

首先来了解几个概念&#xff1a; 缓存穿透&#xff1a;大量请求根本不存在的key 缓存雪崩&#xff1a;redis中大量key集体过期 缓存击穿&#xff1a;redis中一个热点key过期&#xff08;大量用户访问该热点key&#xff0c;但是热点key过期&#xff09; 穿透解决方案 对空值…

windows powershell 下使用【docker cuda choco vim conda ......】

powershell 下可以使用的linux命令 ls可以完全替代llimgcat可以安装&#xff0c;但是显示不了图片&#xff0c;可以用start命令来替换 start .\wallhaven-9m5321.jpgcat touch history可以用 chmod 不能用下面介绍一下alias在powershell下的使用 这里的$profile相当于linux…

搭建Scala环境

搭建Scala开发环境 到官网上下载Scala Scala2.13.10下载网址&#xff1a;https://www.scala-lang.org/download/2.13.10.html 下载文件 安装Scala 根据提示安装&#xff0c;可以安装到默认文件&#xff0c;也能选择其他路径 配置Scala环境变量 变量名变量值SCALA_HOMEC:\Pr…

【软件测试用例篇】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1. 测试用例的概念 2. 设计测试用例的好处 3…

ESP32-C2模组 透传示例

WIFI-TTL透传模块说明 V 1.0 2022-11-24 1 简介 WiFi-TTL透传模块基于我司DT-ESPC2-12模块研发&#xff0c;引出串口TTL、EN、STATE 等引脚。产品内置我司最新版本的串口透传固件可完成设备TTL 端口到WiFi/云的数据实时透传。本模块可直接取代原有的有线串口&#xff0c;实现…

ZooKeeper快速入门学习+在springboot中的应用+监听机制的业务使用

目录 前言 基础知识 一、什么是ZooKeeper 二、为什么使用ZooKeeper 三、数据结构 四、监听通知机制 五、选举机制 使用 1 下载zookeeper 2 修改 3 排错 在SpringBoot中的使用 安装可视化插件 依赖 配置 安装httpclient方便测试 增删查改 新建控制器 创建节点…

k8s中部署nginx-ingress实现外部访问k8s集群内部服务

k8s通过nginx-ingress实现集群外网访问功能 一&#xff1a;ingress概述 1.1 ingress 工作原理 step1&#xff1a;ingress contronler通过与k8s的api进行交互&#xff0c;动态的去感知k8s集群中ingress服务规则的变化&#xff0c;然后读取它&#xff0c;并按照定义的ingress规…

jsp手机回收软件系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp手机回收软件系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助 &#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

Moonbeam社区治理|参与委托投票问卷,瓜分2000U奖励

社区治理升级意味着公链正走向可持续和透明化发展&#xff0c;让每位GLMR所有者都参与治理&#xff0c;是Moonbeam成为真正去中心化公链的重要一环。 Moonbeam治理 OpenGov为Moonbeam生态带来了多角色委托功能&#xff0c;使Token持有者能够根据track委托Token进行投票。委托…