ios html5 video自动播放,HTML5 Video autoplay on iPhone

问题

I have some kind of a strange problem. I try to create a website with a looped background video. The code looks like this one:

This works perfectly fine on most browsers (IE struggles with this object-fit thing but I don't mind) but on iPhone the video won't autoplay but on iPad it does. I already read the New Policies for iOS and I think I meet the requirements (otherwise iPad won't autoplay). I did some other testing:

Removing overlaying divs won't fix it

Removing z-index won't fix it

Wifi or Cellular doesn't make a difference

Video filesize doesn't make a difference, too

Am I doing it wrong or does iPhone simply won't autoplay videos and always requires interaction? I only care for iOS 10, I know that the requirements were different on iOS 9

回答1:

Does playsinline attribute help?

Here's what I have:

See the comment on playsinline here: https://webkit.org/blog/6784/new-video-policies-for-ios/

回答2:

iOs 10+ allow video autoplay inline. but you have to turn off "Low power mode" on your iPhone.

回答3:

Here is the little hack to overcome all struggles you have for video autoplay in a website:

1) Check video is playing or not.

2) Trigger video play on event like body click or touch.

Note: Some browsers don't let videos to autoplay unless user interacts with the device.

So scripts to check whether video is playing is:

Object.defineProperty(HTMLMediaElement.prototype, 'playing', {

get: function () {

return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2);

}});

And then you can simply autoplay the video by attaching event listeners to the body:

$('body').on('click touchstart', function () {

const videoElement = document.getElementById('home_video');

if (videoElement.playing) {

// video is already playing so do nothing

}

else {

// video is not playing

// so play video now

videoElement.play();

}

});

Note: autoplay attribute is very basic which needs to be added to the video tag already other than these scripts.

You can see the working example with code here at this link:

How to autoplay video when device is in low power mode / data saving mode / safari browser issue

来源:https://stackoverflow.com/questions/43570460/html5-video-autoplay-on-iphone

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值