2016-10-11 81 views
0

我想用Javascript播放jPlayer,但它不會從Javascript播放;我必須手動點擊<button>來播放它。Javascript - 如何從JavaScript中播放jplayer?

<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script> 
    <script type="text/javascript" src="http://jplayer.org/latest/dist/jplayer/jquery.jplayer.min.js"></script> 
    <script type="text/javascript"> 

    function click_me_to_play() { 
     $('#play').trigger('click'); 
    } 

    $(document).ready(function(){ 
     $("#jquery_jplayer_1").jPlayer({ 
     ready: function() { 
      $(this).jPlayer("setMedia", { 
      title: "Big Buck Bunny", 
      m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v", 
      //ogv: "http://www.jplayer.org/video/ogv/Big_Buck_Bunny_Trailer.ogv", 
      //poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png" 
      }); 
     }, 
     swfPath: "/js", 
     supplied: "m4v, ogv", 
     cssSelectorAncestor: "", 
     cssSelector: { 
      title: "#title", 
      play: "#play", 
      pause: "#pause", 
      stop: "#stop", 
      mute: "#mute", 
      unmute: "#unmute", 
      currentTime: "#currentTime", 
     duration: "#duration" 
     }, 
     size: { 
      width: "320px", 
      height: "180px" 
     } 
     }); 



    }); 
    </script> 



    <style> 
    div.jp-jplayer { 
     border:1px solid #009be3; 
    } 
    </style> 
</head> 



<body onload="click_me_to_play();"> 
    <p> 
    <button id="play">play</button> 


    </p> 
    <div id="jquery_jplayer_1" class="jp-jplayer"></div> 
</body> 
<html> 
+0

NO。我試過它從來沒有工作。它不是重複的,所有的舊例子都不起作用。 – YumYumYum

+0

它不是自動播放。我想從javascript中播放它,而不是從Html/html5按鈕播放。 – YumYumYum

+0

好吧,但在文檔中的一個答案中,他們引用了http://jplayer.org/latest/developer-guide/#jPlayer-play'$(id).jPlayer(「play」,[Number:time]) :jQuery' –

回答

1

是hacky,但工作,在/jPlayer-2.9.2/examples/blue.monday/demo-01.html fil0e。

function click_me_to_play() { 
    setTimeout(function(){ $("#jquery_jplayer_1").jPlayer("play",0); },1000); 
} 
// tested on win7 Chrome 51+ 

我仍然在尋找爲什麼這可行,爲什麼它沒有超時無法正常工作。

更新:
所以現在我檢查了一下它,玩家的ready活動結束身體onload事件之後。 所以這只是一個計時問題。 或者,您可以使用loadeddata事件來檢查文件是否已加載,然後觸發click_me_to_play函數(如果要避開setTimeout函數),並在文件加載時開始播放。
(詳細的活動可以發現jPlayer Event Docu

更新2:
例,玩loadeddata事件:

$("#jquery_jplayer_1").jPlayer({ 
    ready: function() { 
     $(this).jPlayer("setMedia", { 
     title: "Big Buck Bunny", 
     ... 
     }); 
    }, 
    ... 
    loadeddata:function(){ 
     $("#jquery_jplayer_1").jPlayer("play",0); 
    } 
    }); 
+0

嘗試在插件實例之後聲明函數嗎? – zer00ne

+0

你應該從這個答案中刪除'setTimeout',並用'loadeddata'的例子代替。你不需要黑客就可以使這個工作。 –

+0

如果答案不會被接受,我發佈我的更新之前,我可以改變它。因爲我現在還不完全知道代碼是如何使用的,而且如果'loaddata'選項仍然可以解決發佈的問題,我不想改變答案。所以我剛纔提到了另一種選擇,對於其他可能有同樣問題的選項。 –