vue组件实现全屏倍速视频播放功能

组件设计:src/components/video/index.vue

<template>
  <div class="video">
    <video-player
      class="video-player vjs-custom-skin"
      ref="videoPlayer"
      :playsinline="true"
      :options="playerOptions"
    >
    </video-player>
  </div>
</template>
<script>
import Vue from 'vue'
import VideoPlayer from 'vue-video-player'
import 'vue-video-player/src/custom-theme.css'
import 'video.js/dist/video-js.css'

Vue.use(VideoPlayer)
export default {
  name: 'VideoPlay',
  props: {
    // 视频资源类型及路径
    sources: {
      type: Array,
      required: true,
    },
  },
  data() {
    return {
      playerOptions: {
        //播放速度
        playbackRates: [0.5, 1.0, 1.5, 2.0],
        //如果true,浏览器准备好时开始回放。
        autoplay: false,
        // 默认情况下将会消除任何音频。
        muted: false,
        // 导致视频一结束就重新开始。
        loop: false,
        // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
        preload: 'auto',
        language: 'zh-CN',
        // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
        aspectRatio: '16:9',
        // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
        fluid: true,
        //你的封面地址
        poster: '',
        //允许覆盖Video.js无法播放媒体源时显示的默认信息。
        notSupportedMessage: '此视频暂无法播放,请稍后再试',
        controlBar: {
          timeDivider: true,
          durationDisplay: true,
          remainingTimeDisplay: false,
          //全屏按钮
          fullscreenToggle: true,
        },
        sources: [...this.sources],
      },
    }
  },
}
</script>
<style lang="scss" scoped>
.video {
  display: inline-block;
  width: 100%;
  text-align: center;
  line-height: 100px;
  border: 1px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  position: relative;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  margin-right: 4px;
  .vjs-custom-skin {
    ::v-deep .video-js {
      .vjs-big-play-button {
        font-size: 2.5em;
      }
    }
  }
}
.video:hover {
  display: block;
}
</style>

使用:src/views/demo/video.vue 

<template>
  <div>
    <p>HTML的video标签</p>
    <video src="https://www.w3school.com.cn//i/movie.ogg" controls="controls">
      您的浏览器不支持视频播放标签
    </video>
    <p>vue-vedio-player插件</p>
    <video-play :sources="source"></video-play>
  </div>
</template>
<script>
import VideoPlay from '../../components/video'

export default {
  components: { VideoPlay },
  data() {
    return {
      source: [
        {
          //类型
          type: 'video/mp4',
          //url地址
          // src: 'https://www.w3school.com.cn//i/movie.ogg',
          src: require('../../assets/video/movie.mp4'),
        },
      ],
    }
  },
}
</script>

实现效果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 使用SpringBoot和Vue实现上传视频播放视频功能可以通过以下步骤进行操作。 1. 后端实现: 使用SpringBoot创建一个后端项目,配置相关依赖和数据库连接等。在后端项目中,可以使用第三方库或自定义接口来处理视频上传功能。可以使用Spring MVC的`MultipartFile`来接收视频文件,并将视频保存到服务器的指定目录中。同时,可以在数据库中存储视频的相关信息,如文件名、路径等。 此外,可以创建一个接口供前端调用来获取上传后的视频列表信息。该接口可以从数据库中读取视频信息,并返回给前端。 2. 前端实现: 使用Vue创建一个前端项目,配置相关依赖,并创建一个视频上传组件。在该组件中,可以使用`<input type="file">`标签来选择视频文件,并通过Vue的事件监听来获取用户选择的视频文件。 在上传视频的方法中,可以使用`axios`或其他库来发送视频文件到后端的上传接口。上传完成后,可以根据后端返回的信息进行提示或其他处理。 另外,可以创建一个视频播放组件,用于展示上传成功的视频列表。在该组件中,可以通过调用后端提供的获取视频列表的接口,获取视频的相关信息。然后,可以使用HTML5的`<video>`标签来播放视频,并根据需要进行进一步的自定义样式和功能开发。 3. 测试和部署: 完成上传视频播放视频功能后,可以进行测试。使用Postman或其他方式测试后端的上传接口,确保视频可以正确上传并存储到服务器中。同时,也可以在前端页面中测试视频上传和播放功能,确认功能完整且正常工作。 最后,可以将后端项目打包成可执行的jar包,并部署到服务器上。将前端项目打包成静态文件,并放置到服务器的可访问位置。通过配置服务器的端口和域名等信息,使上传视频播放视频功能可以通过访问服务器的URL地址来使用。 ### 回答2: 要实现上传视频播放视频功能,可以使用Spring Boot和Vue.js来完成。 首先,在Spring Boot中,可以使用Spring MVC框架来处理上传视频的请求。可以通过编写一个控制器类来处理上传视频的逻辑,使用`@RequestMapping`注解来映射上传视频的接口。在该接口中,可以使用`MultipartFile`类型的参数来接收上传的视频文件,并使用`transferTo()`方法将视频保存到指定的位置。 接下来,可以使用Vue.js来构建前端界面。可以使用`vue-router`来实现路由功能,创建多个组件来处理上传视频播放视频的逻辑。在上传视频组件中,可以使用`el-upload`组件实现视频文件的选择和上传,通过请求Spring Boot的上传视频接口将视频文件传递给后端。在播放视频组件中,可以使用`video`标签来实现视频播放功能,并将视频的URL设置为动态值。 在后端处理上传视频请求后,可以返回一个视频的URL给前端,用于在播放视频组件中进行展示。可以将视频URL保存在数据库中,并在前端从数据库中获取视频URL进行展示。 总结起来,使用Spring Boot处理上传视频的请求,将视频文件保存到指定位置,同时将视频URL保存到数据库中。使用Vue.js构建前端界面,使用`el-upload`组件实现视频的选择和上传,使用`video`标签实现视频播放功能,并从数据库中获取视频URL进行展示。通过这样的方式,就可以实现上传视频播放视频功能。 ### 回答3: 要实现上传视频播放视频功能,可以使用Spring Boot和Vue这两种技术。 在后端,可以使用Spring Boot来搭建一个RESTful API服务。首先,需要定义一个接口用于处理视频上传的请求。可以使用Spring的MultipartFile类来接收视频文件,并将其存储在服务器的指定位置。可以使用Java的IO流来实现文件的读写,确保视频文件保存在服务器上。 在前端,可以使用Vue来构建用户界面。首先,需要创建一个上传视频的表单,以便用户选择要上传的视频文件。使用Vue的formData对象来将视频文件转换为二进制数据,并通过POST请求将其发送给后端接口。同时,还可以使用Vue的进度条组件来显示视频上传的进度。 在后端,接收到视频文件后,可以将其保存在指定路径下,并将文件路径存储在数据库中。这样,可以在后续的播放视频功能中使用该路径来访问视频文件。可以使用Spring Boot提供的静态资源处理功能来访问保存在服务器上的视频文件。 在前端,可以使用Vue视频播放组件实现视频播放功能。可以通过后端返回的视频文件路径来加载视频,并在页面上展示视频播放器。可以使用Vue的事件处理机制,例如点击事件,来控制视频播放、暂停、快进、后退等操作。 综上所述,通过结合Spring Boot和Vue,可以实现上传视频播放视频功能。通过后端的接口和前端的用户界面,用户可以方便地上传和播放视频。同时,还可以根据具体需求,进一步扩展视频管理功能,例如视频列表展示、视频分类等。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值