1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于移动端video-player点击播放自动全屏

关于移动端video-player点击播放自动全屏

时间:2022-03-20 16:02:21

相关推荐

关于移动端video-player点击播放自动全屏

最近一个需求,由于给定的视频资源是竖屏,而UI给定的设计图是横屏(竖屏不美观),导致最终定下的需求是:点击播放按钮,自动全屏播放。

至于为什么花了这么久,主要原因是开始感觉这个需求比较简单,完全可以直接使用video标签实现,不用插件,然而倒腾了半天,网上查了大堆资料,始终无法实现,具体原因目前仍不清楚,貌似跟浏览器内核有关?稍后继续研究去。

先上图

点击之后自动全屏

补充一下遇到的坑:

可以看到,播放器的高度大于封面高度,(本来是刚好的),这里有个地方的设置会影响播放器的高度,playerOptions中的aspectRatio,当设置为4:3的时候就是上图这样了,当时手欠给改了这里,结果找了半天原因。。。

代码:

vue怎么使用video-player这里就不详细说了,教程到处都是。

<div class="videoBox"><video-playerclass="video-player vjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"@play="onPlayerPlay($event)"@pause="onPlayerPause($event)"></video-player></div>//data中的:playerOptions: {playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度autoplay: false, //如果true,浏览器准备好时开始回放。muted: false, // 默认情况下将会消除任何音频。loop: false, // 导致视频一结束就重新开始。preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)language: "zh-CN",aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。sources: [{type: "",src: "xxx" //url地址}],poster: "../images/posterIn.png", //你的封面地址// width: document.documentElement.clientWidth,notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。controlBar: {timeDivider: true,durationDisplay: true,remainingTimeDisplay: false,fullscreenToggle: true //全屏按钮}}//方法full(ele) {//做兼容处理if (element.requestFullscreen) {element.requestFullscreen();} else if (element.mozRequestFullScreen) {element.mozRequestFullScreen();} else if (element.msRequestFullscreen) {element.msRequestFullscreen();} else if (element.oRequestFullscreen) {element.oRequestFullscreen();} else if (element.webkitRequestFullscreen) {element.webkitRequestFullScreen();} else {var docHtml = document.documentElement;var docBody = document.body;var videobox = document.getElementsByClassName("video-player");var cssText = "width:100%;height:100%;overflow:hidden;";docHtml.style.cssText = cssText;docBody.style.cssText = cssText;videobox.style.cssText = cssText + ";" + "margin:0px;padding:0px;";document.IsFullScreen = true;}},onPlayerPlay(player) {this.full(player)},

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。