关于H5 video在移动端播放问题

常见问题和解决方案:

1、video添加自动播放属性autoplay,无法正常播放视频。

解决方案:

需要在video标签中添加muted属性<video muted src="" autoplay loop></video>但是设置muted之后,它规定视频的音频输出时应该被 静音

2、在一些安卓浏览器播放视频的时候,不能在H5页面播放视频,系统会自动接管视频。

解决方案:

添加内联播放属性;
如果需要在H5页面内播放视频,需要在video标签加上webkit-playsinline,在一些ios上还需要加上playsinline
可以同时加上这两个属性:
<video muted src="" autoplay webkit-playsinline playsinline ></video>
有些app还需要支持内联播放的模式,这时候需要加上:
webview.allowsInlineMediaPlayback = YES;

3、可能是视频被接管的原因,移动端播放视频有时候无法直接播放或有卡顿的现象。

解决方案:

启用H5内核H5播放器;
在video标签中添加启动H5播放的属性:x5-video-player-type="h5"
如:<video muted src="" autoplay loop x5-video-player-type="h5"></video>

4、video无法铺满整个屏幕

解决方案:

video标签加上 style="width= 100%; height=100%; object-fit: fill"

5、移动端①播放时,点击暂停并出现蒙层;②暂停时,点击播放并且蒙层消失;

①创建一个蒙层的div,使用video的方法:播放play()、暂停pause();
②使用事件委托也是可以实现的;

蒙层制作可以参考fixed布局应用场景-遮罩层

参考思路和代码(样式不写啦):

 <!-- video -->
        <div class="video-wrap">
            <video id="video" class="myVideo" src="" poster="" width="100%" height="100%" object-fit:fill
                webkit-playsinline playsinline x5-video-player-type="h5" x5-video-orientation="portraint">
                Your browser does not support HTML5 video.
            </video>
        </div>
        <!-- like_icon -->
        <div class="likeIcon-wrap">
            <div class="like-icon" data-key="on"></div>
            <div class="like-num"></div>
        </div>
        <!-- mask -->
        <div class="video-mask"></div>
        <!-- pause_icon -->
        <div class="video-pause"></div>
$(document).ready(function () {
    // video play
    $('.video-mask').on('click', function () {
        maskCancel();
        $('#video').get(0).play(); //play不是jQuery函数,而是DOM函数,需要通过DOM来调用play
    })
    // video pause
    $('.video-wrap').on('click', function () {
        $('#video').get(0).pause();
        maskShow();
    })
    // 监听视频播放,结束时出现暂停按钮和蒙层
    $('#video').on('ended', function () {
        maskShow();
    })
})

var  video_mask = $(".video-mask"),
       video_pause = $(".video-pause"),
       video = $("#video");
//video-mask/video-pause show
function maskShow() {
    video_mask.css('display', 'block');
    video_pause.css('display', 'block');
}
//video-mask/video-pause cancel
function maskCancel() {
    video_mask.css('display', 'none');
    video_pause.css('display', 'none');
}
6、监听视频是否结束

主要用到的是 监听的 ended事件;

//js写法
var video=document.getElementById("video");
video.addEventListener('ended', function () {
     console.log('play over!');;
      }, false);
//jQuery写法
$('#video').on('ended',function(){
     console.log('play over!');
})

注意:addEventListener是js的监听事件,如果在jQuery中这样使用是会出错的,在jQuery中监听可以使用on。

7、关于jQuery使用H5视频播放事件play()、暂停事件pause()出错问题:

在js中使用document.getElementById(‘video’).play();是可以的;
但是在jQuery中使用$('#video').play()就是错误的。

原因:H5的play()/pause()都不是 jQuery函数,而是DOM函数,如果jQuery要使用play()/pause(),需要通过DOM来调用play()/pause()
如:$('#video').get(0).play()

8、关于H5中的自定义属性

H5标准规定,自定义的属性都以data-*开头,这样区分了固有属性和自定义属性,我们可以通过原生js的getAttribute()和jQuery中的attr()来获取我们自定义的属性。如:<div data-name="test">leaf</div>

总之,在这过程中遇到了很多问题,有些还没想起来,等想起来再去完善记录吧,这边简单记录一下。如果文章对你有用就点个小心心鼓励一下吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339