APP内嵌HTML5实现视频横屏播放

Myth丶恋晨 2022-05-25 05:14 403阅读 0赞

需求:

  1. 页面是嵌套在app中的H5页面,点击首页的封面图加载播放视频页面,播放页只有一个video标签,所以如果如图就会很难看,并且播放按钮会很小,就像下图:

70

  1. 需要做到打开页面的时候 **自动播放**并且 **横屏**。
  2. 于是我就找资料啊找资料,发现了很多种做法,并且逐一实验,没有找到合适的。┭┮﹏┭┮
  3. 最后找到一个插件,从中获得了启发,虽然H5不能使手机横过来,但是换个思路,可以把视频转90度!!!
  4. 开始!
  5. 首先,body下有一个div,里面只有一个video
  6. <div id="Flash1" style=" z-index: 999;">
  7. <video poster="video/head.png" id="video" controls="controls" style="height: auto;margin: 0px;padding: 0px;" preload="preload">
  8. <source src="video/ycgx.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' >
  9. </video>
  10. </div>

关键代码

  1. #Flash1{
  2. -webkit-transform: rotate(90deg);
  3. -moz-transform: rotate(90deg);
  4. -ms-transform: rotate(90deg);
  5. -o-transform: rotate(90deg);
  6. transform: rotate(90deg);
  7. }

这是让#Flash1旋转90度,光转过来还不行,需要将video的宽高也设置才可以,这里是写在window.onload方法中的:

  1. var bodyHeight = document.documentElement.clientHeight;
  2. var bodyWidth = document.documentElement.clientWidth;
  3. $("#video").width((bodyHeight) + "px");
  4. $("#video").height((bodyWidth) + "px");
  5. 视频基本成型了,自动播放是在video属性里就可以找到,有 **autoplay**和 **preload**。

autoplay是视频在就绪后马上播放,preload是视频在页面加载时进行加载,并预备播放。如果使用 “autoplay”,则忽略该属性。
我想了一下还是选择autoplay,毕竟刚进页面就要播放。不过有点问题,video的周围有白边并且不均匀,很难看呀。调试样式发现白边是包括在video里面的,这是为什么呢?
想了想可能是设置宽高时差的问题:视频有可能在设置宽高之前就播放了,这时候我将autoplay换成了preload,问题解决,变得均匀了。
可是,自动播放又没了!!!
又是一波找资料,原生js有支持video的播放(play())与暂停方法(pause()),终于,将play方法加在了设置宽高的后面,一个功能完成了。
在这期间,还做了很多的调试样式。

  1. 完整代码如下:
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <style type="text/css">
  7. #Flash1{
  8. -webkit-transform: rotate(90deg);
  9. -moz-transform: rotate(90deg);
  10. -ms-transform: rotate(90deg);
  11. -o-transform: rotate(90deg);
  12. transform: rotate(90deg);
  13. }
  14. body{
  15. margin: 0px;
  16. padding: 0px;
  17. }
  18. </style>
  19. <script src="js/jquery-1.8.3.min.js"></script>
  20. <script type="text/javascript">
  21. function resizeBody() {
  22. var bodyHeight = document.documentElement.clientHeight;
  23. var bodyWidth = document.documentElement.clientWidth;
  24. $("#video").width((bodyHeight) + "px");
  25. $("#video").height((bodyWidth) + "px");
  26. var video = document.getElementById("video");
  27. video.play();
  28. }
  29. window.onload = function(){
  30. $("html").css("width","100%").css("height","100%");
  31. $("body").css("width","100%").css("height","100%");
  32. resizeBody();
  33. }
  34. </script>
  35. <body οnresize="resizeBody()">
  36. <div id="Flash1" style=" z-index: 999;">
  37. <video poster="video/head.png" id="video" controls="controls" style="height: auto;margin: 0px;padding: 0px;" preload="preload">
  38. <source src="video/ycgx.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' >
  39. </video>
  40. </div>
  41. </body>
  42. </html>

70 1

参考链接:

http://www.w3school.com.cn/tags/tag_video.asp

https://www.cnblogs.com/w-wanglei/p/5763103.html

发表评论

表情:
评论列表 (有 0 条评论,403人围观)

还没有评论,来说两句吧...

相关阅读

    相关 php强行,强制app

    强制横屏app是一款专为手机用户打造的控制屏幕方向转动的软件。现在很多手机设备上面都有可以转动屏幕方向的设置,但是有一些手机还是没有添加这种功能,那么这个时候你就非常需要这款软