2012-04-24 113 views
0

我到处寻找类似问题,但没有运气。点击播放按钮时html5视频无法启动

我有一个html5 mp4视频,点击播放按钮时不会播放。我知道点击被感知,因为点击时播放按钮突出显示。其他默认控制是响应式的,视频不会播放。

我不认为它正确地与DOM通信。视频控件的默认HTML5

<video>坐落在一个div带班.divWrapper这个div确实有阻止默认,以防止所谓的HandleMouseDown烧制而成的功能,但是这不应该播放按钮干扰。特别是因为它对其他视频控制没有影响。

下面是HTML

<div class="vidWrapper"> 

    <video width="430" height="261" preload="metadata" controls> 

     <source src="vids/JB_COMMERCIAL_WEB.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
     <source src="vids/JB_COMMERCIAL_WEB.ogv" type='video/ogg; codecs="theora, vorbis"'> 
      <object width="640" height="384" type="application/x-shockwave-flash" 
      data="vids/JB_COMMERCIAL_WEB.swf?image=JB_COMMERCIAL_WEBplaceholder.jpg&file=vids/JB_COMMERCIAL_WEB.mp4"> 
       <param name="movie" value="JB_COMMERCIAL_WEB.swf?image=JB_COMMERCIAL_WEBplaceholder.jpg&file=vids/JB_COMMERCIAL_WEB.mp4" /> 
      </object> 
    </video> 
</div> 

这里是防止默认片段。

$("#" + section + "Copy").slideDown("normal", function() 
{ dropdownSection = section; document.onclick = HandleMouseDown; 
$(".vidWrapper").click(function(HandleMouseDown) {return false;});}); 

编辑:我能够通过插入jquery来强制播放视频来播放视频。现在我有一个不同的问题。视频播放,但不会暂停。

我的问题是,如何修改代码,以便视频在点击时暂停?

这里是最新的代码:

$("#" + section + "Copy").slideDown("normal", function() { dropdownSection = section; document.onclick = HandleMouseDown; $(".vidWrapper").click(function(HandleMouseDown) {return false;}); 
$(".vidWrapper").click(function() {$('video', this).get(0).play();}); 
}); 
+0

请显示验证码? – Tobi 2012-04-24 06:43:28

+0

你现在使用的代码如何?那么你可以得到帮助,因为像我这样的大多数人都无法阅读你的屏幕或心灵;-) – 2012-04-24 06:46:16

+0

对不起,只是想弄清楚问题的最佳方式而不会让人困惑。 – user1350973 2012-04-24 06:53:23

回答

0

你的代码看起来如果视频在浏览器(click'n'drop到浏览器)直接打出了不错的

  1. 体检,找出是否视频文件没有损坏

    1. 你可以播放另一个mp4文件吗?如果没有,检查这个职位,我只是写,并检查服务器MIME类型 - >Playing a movie/DVD on a website
+0

longilong - 感谢您的回复。 mp4在浏览器中工作,并且mime类型是正确的:(更令人困惑的是,即使预设了默认值,视频控制也能正常工作,但播放按钮仅在删除预防默认时才起作用... – user1350973 2012-04-24 08:35:54

0

对于任何用户碰到这个问题仍然磕磕绊绊:这里的问题是.vidWrapper元素和对click事件处理程序事实上,它返回false,这不仅会导致在.vidWrapper元素上阻止默认的点击事件,还会在视频本身上阻止。

目前,该问题只出现在Firefox中。 https://jsfiddle.net/qpusancf/(测试火狐53.0.3)

删除从事件处理程序的return false;语句应该解决的问题:使用e.preventDefault时,而不是return false

下面是另一个例子也发生

的问题。

或者,如果您需要阻止父元素上的默认事件,则可以检查事件目标是否具有父元素的类,并且仅在默认事件发生时才阻止该事件。

使用jQuery:

$(".vidWrapper").click(function(event) {  
    if($(event.target).hasClass('vidWrapper')) { 
     event.preventDefault(); 
     // Additional event handling code ... 
    } 
}); 

的OP是在说,其他视频控件uneffected正确。这种行为可能是Firefox中的一个错误,因为即使阻止了父级的默认点击事件,仍然可以在其他浏览器中使用播放按钮。