vue中使用video-js预览视频

1:安装

cnpm i vue-video-player -S

2:引用:在main.js中引用

import VideoPlayer from 'vue-video-player'
require('video.js/dist/video-js.css')
require('vue-video-player/src/custom-theme.css')
Vue.use(VideoPlayer)

3:使用(结合你使用框架的dialog即对话框)

  <video-player
        class="video-player vjs-custom-skin"
        ref="videoPlayer"
        :playsinline="true"
        :options="playerOptions"--------设置视频播放的对象
      >
</video-player>

4、配置

playerOptions: {
       playbackRates: [0.5, 1.0, 1.5, 2.0],//倍速控制
       autoplay: true,//是否自动播放
       muted: false,//是否静音播放
       loop: false,//是否循环播放
       preload: "auto",
       language: "zh-CN", //语言,还要引入对应的文件
       aspectRatio: "16:9",//比例
       fluid: true,
       sources: [
         {
           type: "",
           src:
             "", //url地址
         },
       ],
       poster: "", //你的封面地址
       notSupportedMessage: "此视频暂无法播放,请稍后再试",
       controlBar: {
         timeDivider: true,
         durationDisplay: true,//剩余时间是否显示
         remainingTimeDisplay: false,//剩余时间是否显示,有一个即可
         fullscreenToggle: true,//全屏按钮
       },
     },

 

### 实现视频上传并在前端页面显示 为了在 Vue2 项目中使用 `van-uploader` 组件来实现视频文件的上传以及预览功能,需遵循特定配置方法。首先确认已安装 Vant UI 库版本适用于 Vue2 环境。 #### 安装依赖库 确保项目环境中已经包含了必要的依赖项,可通过 npm 或 yarn 来完成 Vant 及其样式资源的引入: ```bash npm install vant@latest-2 --save ``` 或者 ```bash yarn add vant@latest-2 ``` #### 导入 Uploader 组件及相关 CSS 文件 接着,在项目的入口文件(通常是 main.js)里全局注册 `van-uploader` 和其他所需组件,并导入相应的主题样式表以便正常使用这些UI控件[^1]。 ```javascript import { createApp } from 'vue'; import App from './App.vue'; // Import Vant components and styles. import VanUploader from 'vant/lib/uploader'; import 'vant/lib/uploader/style'; const app = createApp(App); app.use(VanUploader); app.mount('#app'); ``` #### 创建 Video Upload 页面逻辑 定义一个新的视图组件用于处理视频的选择、上传操作及其状态管理。这里展示了一个简单的例子说明如何设置 `van-uploader` 属性以适应视频类型的输入需求,并通过监听事件更新本地存储的状态变量从而控制界面上的内容呈现[^2]。 ```html <template> <div class="video-upload"> <!-- 使用 van-uploader 并指定 accept 属性 --> <van-uploader :after-read="handleRead" v-model="fileList" multiple accept="video/*"/> <!-- 显示已选中的视频缩略图或播放器 --> <ul v-if="fileList.length > 0"> <li v-for="(item, index) in fileList" :key="index"> <video controls width="300px">{{ item.content }}</video> </li> </ul> <!-- 提交按钮触发实际上传行为 --> <button @click="submit">Submit</button> </div> </template> <script> export default { data() { return { fileList: [], // 存储用户选择的文件列表 }; }, methods: { handleRead(file) { this.fileList.push({ file, content: URL.createObjectURL(file), // 将 File 对象转换成可访问链接供 preview 使用 }); }, submit() { const formData = new FormData(); this.fileList.forEach((item) => { formData.append('files', item.file); // 添加到 formdata 准备发送给服务器端 }); fetch('/upload-endpoint', { method: 'POST', body: formData, }) .then(response => response.json()) .catch(error => console.error('Error:', error)); } } }; </script> ``` 上述代码片段展示了怎样利用 `accept="video/*"` 参数限定只允许挑选视频文件;并通过自定义函数 `handleRead()` 处理读取后的回调动作——创建对象 URL 作为临时路径让 `<video>` 标签能够即时加载所选取媒体内容进行可视化反馈。最后还提供了一种模拟提交的方式,即构建 `FormData` 发送 POST 请求至后端接口完成真正的文件传输流程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值