html5的video标签不能播放怎么办

html5video标签不能播放的解决办法:1、使用视频截图做一个播放按钮,占位视频原有位置;2、监听占位按钮的click事件,使用“video.play()”;3、把占位图和loading隐藏即可。

html5的video标签不能播放怎么办

本教程操作环境:Windows10系统、HTML5版、DELL G3电脑

html5的video标签不能播放怎么办?

IOS-HTML5-Video标签不能播放

h5的video标签 在UIwebview中无法播放,Safari可以,

立即学习“前端免费学习笔记(深入)”;

某些手机可以某些手机不行

和video.js实现一致,不嫌弃再引一个兼容包,想有更好体验的

建议使用https://videojs.com/

想自己体验一把原理,可以在文章最后拷贝demo代码运行

传统的方法在HTML中写video标签就可以点击播放啦

// ?vframe/jpg/offset/5  这个是七牛接口,取截图用的,5就是第5秒截图

登录后复制

BUT,这么写在IOS 10.3.2/3 11.x.x. iphone 6/6p 7等等几个测试机中就不行,但是在个人手机上又可以,有的手机可以有的手机不行。

修改后:

步骤1:使用视频截图再做一个播放按钮,占位视频原有位置

步骤2: 监听占位按钮的click事件,使用video.play(),就可以看到视频有请求在加载了

步骤3: 在加载中的视频都有一个promise可以拿到,then以后把占位图和loading隐藏就可以了

tips:

不同手机/系统会有不同的请求范围,一般都是分割成3-5个206请求。

console.time(“加载毫秒”);可以看到加载时间,基本和Charles抓包看到的一致。

不同手机/系统也会有不同的then表现有的是一点就给返回,有的是需要等视频全部加载完才返回

视频DOM的属性可以拿到当前加载了多少,总量是多少,除一下就是百分比,具体属性可以看 > https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video

线上地址:http://m.soyoung.com/item/detail?type=0&sys=3&item_id=263&cityId=0

demo代码(方便有些朋友,私信想直接拿走demo啦~)

nbsp;html>                    视频DEMO                            html,body,video{                margin: 0;                padding: 0;            }            .pub-swipe .media {                position: relative;                font-size: 0;                margin-bottom: 0.4rem;            }            .pub-swipe .media img,            .pub-swipe .media video {                display: block;                margin: 0 auto;                width: 100%;                min-height: 4.667rem;            }            .pub-swipe .desc,            .pub-swipe .media img {                margin-bottom: 0.267rem;            }            .pub-swipe .media video {                width: 100%;                height: 4.667rem;            }            .pub-swipe .media img.video-go {                width: 2.707rem;                height: 2.707rem;                min-height: 0;                position: absolute;                left: 50%;                margin-left: -.853rem;                top: 1.3rem;                z-index: 5;            }            .hide {                display: none !important;            }                
            

                                    html5的video标签不能播放怎么办                    html5的video标签不能播放怎么办                            

        
         /** * 视频加载兼容处理 */ var isIPhone = window.navigator.appVersion.match(/iphone/gi); var creat_video = function () { var _video = document.getElementsByClassName('video-i'); if (_video.length > 0) { for (var i = 0; i 0) { _dom = _video[0]; // if (_dom.ended) { if (isIPhone) { //修改Ios11状态不准,视频无法播放的问题 if (_dom.src.indexOf('random') > -1) { _dom.src = _dom.src.split('random=')[0] + 'random=' + _dom.src.split('random=')[1] + 1; } else { _dom.src = _dom.src + '?random=' + Math.floor(Math.random() * (100 - 10 + 1) + 10); } } _noSound[0].classList.remove('hide'); _dom.play(); _this.classList.add('hide'); _dom.classList.remove('hide'); // } } return; } _this.setAttribute('data-video', '1'); _process.setAttribute('class', 'vjs-process'); _process.innerHTML = '加载中...'; _loading.setAttribute('class', 'vjs-loading-spinner'); _dom.setAttribute('src', _videoUrl); _dom.setAttribute('controls', 'controls'); _dom.setAttribute('autoPlay', 'false'); // _dom.setAttribute('x5-video-player-type', 'h5'); _this.parentNode.appendChild(_loading); _this.parentNode.appendChild(_process); _this.parentNode.classList.add('vjs-waiting'); _noSound.setAttribute('class', 'no-sound'); _noSound.innerHTML = '无声'; // _dom.setAttribute('webkit-playsinline', 'webkit-playsinline'); // _dom.setAttribute('playsinline', 'playsinline'); _dom.setAttribute('poster', _img); _p = _dom.play(); console.time("加载毫秒"); var _dom_buffered_promise = function () { var _end = _dom.buffered.end(0); var _duration = _dom.duration; var _a = Math.round(_end / _duration * 100); _process.innerHTML = _a + '%'; console.log(_end + ' ' + _duration) if (_a < 10) { setTimeout(_dom_buffered, 200); } else { _dom_buffered(); } }; var _dom_buffered = function () { _this.parentNode.classList.remove('vjs-waiting'); _this.classList.add('hide'); _process.classList.add('hide'); _this.parentNode.appendChild(_dom); _this.parentNode.appendChild(_noSound); _dom.addEventListener('ended', function () { _dom.classList.add('hide'); _this.classList.remove('hide'); _noSound.classList.add('hide'); }); _dom.currentTime = 0; console.timeEnd("加载毫秒"); }; if (_p instanceof Promise) { _p.catch(function (error) { console.log(error.message); if (error.name === 'NotAllowedError') { _autoPlayAllowed = false; } }).then(function (e) { if (_autoPlayAllowed) { _dom_buffered_promise(); } }); } else { //ios8-9拿不到promise需要给个延时处理 setTimeout(function () { _dom_buffered(); }, 4000); } }); } } }; new creat_video();     

登录后复制

b8b4995222327274ed1c2070eed4542.jpg

推荐学习:《HTML5视频教程》

以上就是html5的video标签不能播放怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2921506.html

(0)
上一篇 2025年3月11日 18:29:11
下一篇 2025年2月23日 05:56:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vs2010是否支持html5

    vs2010支持html5,其支持html5的设置方法:1、升级Microsoft Visual Studio 2010到Microsoft Visual Studio 2010 SP1;2、打开VS2010,在菜单栏选择“工具”->…

    2025年3月11日
    200
  • html5清除画布代码是什么

    html5清除画布代码有三种:1、通过“function clearCanvas{…}”代码清除画布;2、使用clearRect方法清除画布;3、使用“function clearCanvas(){var c=document.…

    2025年3月11日
    200
  • html5中的p不换行怎么办

    html5中的p不换行的解决办法:1、打开相应的HTML代码文件;2、找到p标签;3、通过添加“p:nth-child(2) {word-break: break-word}”属性使得数字英文自动换行即可。 本教程操作环境:Windows1…

    2025年3月11日
    200
  • html5媒体查询语句是什么

    html5媒体查询语句是由媒体类型和一个或多个检测媒体特性的条件表达式组成;媒体查询中可用于检测的媒体特性有width、height和color等;使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。 本教程操作环…

    2025年3月11日
    200
  • html5 遮罩 有什么用

    html5遮罩的作用是指定一个显示对象的可见区域,所有显示对象都具备遮罩功能;矩形遮罩即显示对象的可见区域是方形显示区域而非不规则显示区域;显示对象遮罩即显示对象的可见区域由另一个显示对象确定,可实现不规则遮罩。 本教程操作环境:Windo…

    2025年3月11日
    200
  • html5怎么实现三维效果

    html5实现三维效果的方法:1、创建一个HTML示例文件;2、通过“.img {width: 50px;height: 50px;margin: 0 auto;transform-style: preserve-3d;}”属性实现三维立体…

    2025年3月11日 编程技术
    200
  • html5怎么实现放大镜功能

    html5实现放大镜功能的方法:1、创建一个HTML示例文件;2、使用html5 canvas标签初始化图像;3、获得canvas和image对象;4、通过“function drawAnchor() {…}”等方法将选中的区域…

    2025年3月11日 编程技术
    200
  • html5中video不支持的格式是哪个

    html5中video不支持的格式是flv格式,支持的格式包含MP4、WebM和Ogg;在html5中,元素提供了播放、暂停和音量控件来控制视频;同时元素也提供了width和height属性控制视频的尺寸,如果设置的高度和宽度,所需的视频空…

    2025年3月11日
    200
  • IE在哪个版本开始支持HTML5

    IE在IE9版本开始支持HTML5部分方法,HTML5是HTML最新的修订版本,2014年10月由万维网联盟完成标准制定;HTML5的设计目的是为了在移动设备上支持多媒体。 本教程操作环境:Windows10系统、HTML5版、DELL G…

    2025年3月11日
    200
  • html5会被淘汰吗

    html5不会被淘汰,因为HTML5将Web带入一个成熟的应用平台,在这个平台上,视频、音频、图像、动画以及与设备的交互都进行了规范;为了更好地处理今天的互联网应用,HTML5还添加了很多新元素及功能,比如图形的绘制、多媒体内容、更好的页面…

    2025年3月11日
    200

发表回复

登录后才能评论