2011-05-03 71 views
0

我有一個小的jQuery .click函數,我打算用它來跳過HTML5視頻,並在它的位置開始照片幻燈片放映。這是如下:jQuery fn暫停HTML 5視頻在Flash後備中損壞

$("a.skip").click(function() { 
    $("div.vidbox video").hide();     
    $("div.vidbox div").hide(); 
    $(".slideshow").fadeIn(1000, function() {setInterval("slideSwitch()", 5000)}); 
    $("div.vidbox video").get(0).pause(); 
    return false; 
}); 

這與以下標記的工作:

<video width="1000" height="400" preload="auto" controls="controls" poster="a/i/pe_home_poster.jpg" style="display: none;"> 
    <source src="a/v/pre-launch-welcome-video.mp4" type="video/mp4" /> 
    <source src="a/v/pre-launch-welcome-video.ogg" type="video/ogg" /> 
    <object id="flowplayer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1000" height="400"> 
     <param name="movie" value="a/flowplayer/flowplayer-3.2.7-0.swf" /> 
     <param name="flashvars" 
      value='config={"clip":"http://www.clientsite.com/a/v/pre-launch-welcome-video.mp4"}' />     
     <embed type="application/x-shockwave-flash" width="1000" height="400" 
      src="a/flowplayer/flowplayer-3.2.7-0.swf" 
      flashvars='config={"clip":"http://www.clientsite.com/a/v/pre-launch-welcome-video.mp4"}'/> 
    </object>    
</video> 

然而,問題是,當瀏覽器回落到基於閃存的播放器,暫停函數返回未定義,並打破腳本。

現在,我已經通過調用click函數底部附近的暫停函數來減輕效果,所以只有返回失敗,但我認爲我可以做得更好。

我想從這裏得到什麼是要麼我可以使條件有條件,和/或如何檢測使用jQuery實際播放哪個視頻。感謝任何有意見的人。

回答

1

你可以測試一下,看看瀏覽器是否支持視頻

var supportsVideo = !!(document.createElement('video').canPlayType); 

if (supportsVideo) { 
$("div.vidbox video").get(0).pause(); 
} 
+0

這工作! 謝謝!我喜歡這個技巧。我不會忘記它。 – DaveL 2011-05-03 20:12:43

+0

如果您需要對瀏覽器功能進行更多測試,請確保您查看Modernizer http://www.modernizr.com/ – 2011-05-03 20:35:02