2015-09-26 54 views
0

我使用seekto基於youtube api來創建一個鏈接到一個視頻的時刻,但使用秒,我想用小時分鐘秒(HHMMSS)代替。 這當然可以用一個小小的JavaScript?Youtube API seekTo()以hh:mm:ss格式

我的代碼:https://jsfiddle.net/94150148/1pfat4wu/

<iframe id="player" type="text/html" width="500" height="400" 
src="https://www.youtube.com/embed/Zou31ZBBhTY?enablejsapi=1" frameborder="0" allowfullscreen></iframe> 
<br> 
<p><a href="javascript:void(0);" onClick="player.seekTo(60)">Click here</a></p> 
<p><a href="javascript:void(0);" onClick="player.seekTo(120)">Click here</a></p> 

<script> 
var tag = document.createElement('script'); 
    tag.src = "https://www.youtube.com/iframe_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    var player; 

    function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player'); 
    } 
</script> 

感謝

回答

1

我不知道,如果Youtupe API支持通過HH:MM:SS求,但你肯定可以轉換HH:MM:SSSeconds,即:

HTML :

<iframe id="player" type="text/html" width="500" height="400" src="https://www.youtube.com/embed/Zou31ZBBhTY?enablejsapi=1" frameborder="0" allowfullscreen></iframe> 
<br> 
<p><a href="javascript:void(0);" onClick="player.seekTo(convertMToS('01:12:26'))">01:12:26</a></p> 
<p><a href="javascript:void(0);" onClick="player.seekTo(convertMToS('00:55:55'))">00:55:55</a></p> 

JS:

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
var player; 

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player'); 
} 

function convertMToS(hms){ 
// your input string 
var a = hms.split(':'); // split it at the colons 
// minutes are worth 60 seconds. Hours are worth 60 minutes. 
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 
console.log(seconds); 
return seconds; 
} 

DEMO: https://jsfiddle.net/1pfat4wu/9/

+1

非常感謝你,這正是我想要的。 您是否認爲點擊鏈接時可以立即看到控制欄? 謝謝。 – Laurent

+1

你好佩德羅改善我的代碼我需要這個:如果玩家暫停播放視頻時,player.seekTo函數被稱爲http://stackoverflow.com/questions/34391625/youtube-if-the-player-is-paused- play-the-video-when-player-seekto-function-is-c 謝謝 – Laurent

0

使用這個命令的時間碼格式可以是任意的DD:HH:MM:SSHH:MM:SSMM:SS,或SS

var duration = '3:23:59:59'; // 4 days minus 1 second 

var a = duration.split(':'); 
var mul = new Array(1, 60, 3600, 86400); 

var seconds = 0; 

for (var x = 0; x < a.length; x++) 
{ 
    seconds += (a[a.length - 1 - x] * mul[x]); 
}