videojs设置容器宽高太小自动播放失效问题解决

最近 xiaomu 在工作中业务需求需要播放rtmp流,H5自带的video显然不支持,所以上网搜索了一下可以播放rtmp流的插件,于是找到了videojs

本来使用的好好的,但是业务需求需要在一个页面播放四个视频,这就使得每个video容器的宽高变小了,问题也就随之而来…

因为用户点击播放之后视频要自动播放,video 标签有autoplay属性,设置一下就好了…

<video id="my-video" class="video-js" autoplay="false" controls preload="auto" width="375px" height="250px">
        <source src="rtmp://58.200.131.2:1935/livetv/hunantv" type='rtmp/flv'>
        <p class="vjs-no-js">
            To view this video please enable JavaScript, and consider upgrading to a
            web browser that
            <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
        </p>
    </video>

或者videojs也有自动播放的方法:

var myPlayer = videojs("my-video");// 初始化videojs
videojs("my-video").ready(
    function () {
        var myPlayer = this;
        myPlayer.play();// 播放的方法
        // myPlayer.pause();// 暂停的方法
    }
);

但是当我把这些该设置的都设置完之后,发现并播放不了,videojs渲染完之后,界面出现一个播放按钮:
因为width小于395px之后就不会自动播放…
在这里插入图片描述
这岂不是很恶心吗?已经点击一次播放了,现在还要再点击一次才能播放,拖出去斩了吧…

但是进过我的潜心研究,终于是发现了解决办法:

在你渲染videojs代码上面添加一行代码:

videojs.options.flash.swf = 'video-js.swf';// <---新加的代码
var myPlayer = videojs("my-video");
videojs("my-video").ready(
    function () {
        var myPlayer = this;
        myPlayer.play();
    }
);

加上之后别着急试,因为还不行,还需要一个文件:就是你新加那行代码引用的文件:video-js.swf

video-js.swf文件百度云链接:
链接:https://pan.baidu.com/s/15PHwfe_mriCYNVFSEf7lRA
提取码:e6g8

我测试代码的结构:
在这里插入图片描述

好了,现在再试一下发现就可以。

要在video标签中设置播放按钮,可以使用以下步骤: 1. 首先,使用一个div元素将video标签包裹起来。这个div将作为播放按钮的容器。 2. 在这个div中,添加一个按钮元素,比如使用一个<i>标签,并为它添加一个合适的类名,比如"play-button"。 3. 使用CSS来设置这个播放按钮的样式。可以为这个按钮设置一个合适的背景图像,比如一个播放图标,并调整其尺寸和位置,使其看起来像一个播放按钮。 4. 为这个按钮添加点击事件的监听器。在事件处理函数中,使用JavaScript来控制video标签的播放和暂停。 示例代码如下: HTML: ```html <div class="video-container"> <video src="video.mp4"></video> <i class="play-button"></i> </div> ``` CSS: ```css .video-container { position: relative; width: 300px; height: 200px; } .play-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; background-image: url(play-button.png); background-size: cover; cursor: pointer; } ``` JavaScript: ```javascript var video = document.querySelector('video'); var playButton = document.querySelector('.play-button'); playButton.addEventListener('click', function() { if (video.paused) { video.play(); } else { video.pause(); } }); ``` 这样,用户点击播放按钮时,视频将开始播放或暂停。记得替换示例代码中的视频路径和播放按钮图像路径为你实际使用的资源路径。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值