vue中使用video-player视频播放

1.安装插件依赖

npm install vue-video-player@5.0.2

2.在main.js中引入插件

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

3.在组件内使用,如下示例代码:

<template>
    <div>
        <div class="reply_con" v-for="(item, index) in videoPlayList" :key="index">
            <video-player class="video-player-box" id="videoDiv" ref="videoPlayer" :playsinline="true"
                :options="item" @play="onPlayerPlay($event)" @pause="onPlayerPause($event)"
                @ended="onPlayerEnded($event)" @waiting="onPlayerWaiting($event)" @playing="onPlayerPlaying($event)"
                @loadeddata="onPlayerLoadeddata($event)" @timeupdate="onPlayerTimeupdate($event)"
                @canplay="onPlayerCanplay($event)" @canplaythrough="onPlayerCanplaythrough($event)"
                @statechanged="playerStateChanged($event)" @ready="playerReadied"></video-player>
        </div>
    </div>
</template>
<script>
//引入依赖文件
import { videoPlayer } from "vue-video-player";
export default {
    data() {
        return {
            videoPlayList: [],
           
        }
    },
    methods: {
        getVideo() {
            //模拟接口返回的数据
            //videoPlayList把video-player需要的数据格式遍历生成
            //当前宽度设置的300px 高度设置不生效  如果需要修改高度我是修改的aspectRatio的比例,一般是16:9
           res.data.videoList.forEach(items => {
                let arr = {
                    playbackRates: [0.5, 1.0, 1.5, 2.0],
                    autoplay: false,
                    muted: false,
                    loop: false,
                    preload: "auto",
                    language: "zh-CN",
                    aspectRatio: "2:1", //注意这个比例根据自己需要宽高进行调整 
                    fluid: true,
                    sources: [
                        {
                            type: "video/mp4",
                            src: items.url,
                        },
                    ],
                    controlBar: {
                        timeDivider: true, // 当前时间和持续时间的分隔符
                        durationDisplay: true, // 显示持续时间
                        remainingTimeDisplay: true, // 是否显示剩余时间功能
                        fullscreenToggle: true, // 是否显示全屏按钮
                    }
                }
                this.videoPlayList.push(arr)
            })
        },
        //各个播放事件的回调函数
        onPlayerPlay(e) {
            this.isplay = true;
        },
        // 暂停的回调
        onPlayerPause(e) {
            this.isplay = false;
        },
        // 结束的回调
        onPlayerEnded(e) {
            this.isplay = false;
        },
        // 等待的回调
        onPlayerWaiting(e) { },
        // 播放中回调
        onPlayerPlaying(e) {
            this.isplay = true;
        },
        // 视频加载完成的回调
        onPlayerLoadeddata(e) {

        },
        // 视频播放时,时间的回调
        onPlayerTimeupdate(e) {

        },
        //媒体的readyState为HAVE_FUTURE_DATA或更高
        onPlayerCanplay(player) {

        },
        //媒体的readyState为HAVE_ENOUGH_DATA或更高。这意味着可以在不缓冲的情况下播放整个媒体文件。
        onPlayerCanplaythrough(player) {

        },
        // 视频播放时状态回调
        playerStateChanged(e) {
        },
        // 视频加载完成回调,此时可以赋值 myPlayer
        playerReadied(e) {

        },
    },
}
</script>
<style lang="scss">
.video-player-box{
  width: 300px;
}
</style>
   
   
  
    
    
    
   

 如果写的哪里不对,欢迎大佬指正

Vue使用video-player无法播放视频的问题,可能是由于微信浏览器的限制导致的。微信浏览器对视频自动播放有一些限制,需要用户手动触发播放操作。为了解决这个问题,你可以使用以下方法: 1. 在video标签添加属性"autoplay"来实现视频的自动播放。例如: ```html <video autoplay> <source src="your_video_url" type="video/mp4"> </video> ``` 2. 如果自动播放仍然无效,你可以尝试添加其他兼容性属性。例如: ```html <video webkit-playsinline="true" x-webkit-airplay="true" playsinline="true" x5-video-player-type="h5" x5-video-player-fullscreen="true" autoplay> <source src="your_video_url" type="video/mp4"> </video> ``` 请注意,以上方法的"your_video_url"需要替换为你实际的视频链接地址。 另外,你还可以通过在Vue的mounted钩子函数使用JavaScript代码来实现视频的自动播放。例如: ```javascript mounted() { this.$nextTick(() => { var video = document.getElementById("example_video"); video.play(); }) } ``` 以上代码是通过获取video元素并调用play()方法来实现视频的自动播放。请确保你的video元素具有id属性,并且id与代码的"example_video"一致。 综上所述,你可以尝试在Vue使用以上方法来解决video-player无法播放视频的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue使用video插件在微信浏览器视频无法自动播放的问题](https://blog.csdn.net/JLX981314/article/details/126111883)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值