2012-04-24 137 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中的一個錯誤,因爲即使阻止了父級的默認點擊事件,仍然可以在其他瀏覽器中使用播放按鈕。