Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在Android上显示html5视频控件_Javascript_Android_Ios_Ios6_Html5 Video - Fatal编程技术网

Javascript 仅在Android上显示html5视频控件

Javascript 仅在Android上显示html5视频控件,javascript,android,ios,ios6,html5-video,Javascript,Android,Ios,Ios6,Html5 Video,我有一个带有flash回退功能的视频标签: <video id="myvideo" width="480" height="224" autoplay preload="auto" loop poster="intro6.jpg"> <source src="intro6.mp4" type="video/mp4"> <source src="intro6.webm" type="video/webm"> <source src="intro6.ogv"

我有一个带有flash回退功能的视频标签:

<video id="myvideo" width="480" height="224" autoplay preload="auto" loop poster="intro6.jpg">
<source src="intro6.mp4" type="video/mp4">
<source src="intro6.webm" type="video/webm">
<source src="intro6.ogv" type="video/ogg">
<object width="480" height="224" type="application/x-shockwave-flash" data="player.swf">
<param name="movie" value="player.swf" />
<param name="flashvars" value="autostart=true&amp;controlbar=hide&amp;image=intro6.jpg&amp;file=intro6.mp4&amp;repeat=always" />
<img src="intro6.jpg" width="480" height="224" />
</object>
</video>

正如你所看到的,我没有任何控件,它只是一个自动播放的循环视频。这在桌面浏览器上效果很好,但在Android和iOS上效果不太好。 所以我需要在Android上看到控件,因为它不会自动播放或循环。 在iOS上,我需要的视频不是自动播放

有没有办法用javascript实现这一点?请记住,我对javascript知之甚少


谢谢

最简单、最实用的方法可能是检查用户代理,看看你是否在安卓系统上

if (navigator.userAgent.indexOf('Android') >=0) {
   document.getElementById('myvideo').controls = true;
}
一般来说,用户代理嗅探是“不受欢迎的”。通常最好使用功能检测,因为一些未来版本的Android浏览器可能支持自动播放。但是移动浏览器通常不会很好地告诉你他们什么时候不支持视频/音频规范

另一种方法是检查事件。在FF/Chrome/IE9+中,事件将触发一系列事件,包括:
加载开始
进度
持续时间更改
,等等。。。最多可
播放
播放
。在Android浏览器中(至少是我的旧版本),视频会触发一个
stalled
事件。您可以查找已暂停的
,然后启用控件。您可以在获得“播放”事件时再次删除它们

var video = document.getElementById('myvideo'), started = false;
if (video && video.addEventListener) { //in case of IE < 9
    video.addEventListener('stalled', function() {
        if (!started) video.controls = true;
    }, false);
    video.addEventListener('play', function() {
        started = true;
        video.controls = false;
    }, false);
}
var video=document.getElementById('myvideo'),start=false;
if(video&&video.addEventListener){//如果IE<9
video.addEventListener('stalled',function(){
如果(!started)video.controls=true;
},假);
video.addEventListener('play',function(){
开始=真;
video.controls=false;
},假);
}
但你可能会看到这一事件还有其他原因,比如互联网连接速度慢。因此,在视频开始之前,您仍有可能在桌面浏览器中看到一些控件

你不必担心iOS。即使你想自动播放,它也不会自动播放