有没有办法将 iframe 中的 Youtube 视频提示为四舍五入的秒数?
Is there a way to cue a Youtube video in an iframe to rounded seconds?
我在播放视频时正在使用 YouTube Iframe API 我想同时播放其他内容。
当视频被提示到特定点时,我遇到了麻烦,因为无法获得毫秒数。
我的想法是使用以下代码将当前时间向下舍入:
function onPlayerStateChange(event) {
if(event.data == YT.PlayerState.CUED){
player.seekTo(player.getCurrentTime())
}
}
但这不起作用,如果视频被提示到 23.4 秒,它只会停留在 23.4。
您可以了解他们如何设法从这个 SO post 1 and SO post 2 获得准确的时间。
来自 SO post 1,
You can specify fractions of seconds using a float number
来自SO post 2,here是给出的演示。请参阅下面使用的代码。
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'u1zgFlCw8Aw'
});
}
$(window).load(function(){
jQuery('#seek').click(function(){
player.seekTo(parseFloat($("#seekto").val()));
return false;
});
});
我通过使用更新版本的 API 解决了这个问题,其中 player.getCurrentTime() returns 一个浮点数。
我在播放视频时正在使用 YouTube Iframe API 我想同时播放其他内容。 当视频被提示到特定点时,我遇到了麻烦,因为无法获得毫秒数。
我的想法是使用以下代码将当前时间向下舍入:
function onPlayerStateChange(event) {
if(event.data == YT.PlayerState.CUED){
player.seekTo(player.getCurrentTime())
}
}
但这不起作用,如果视频被提示到 23.4 秒,它只会停留在 23.4。
您可以了解他们如何设法从这个 SO post 1 and SO post 2 获得准确的时间。
来自 SO post 1,
You can specify fractions of seconds using a float number
来自SO post 2,here是给出的演示。请参阅下面使用的代码。
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'u1zgFlCw8Aw'
});
}
$(window).load(function(){
jQuery('#seek').click(function(){
player.seekTo(parseFloat($("#seekto").val()));
return false;
});
});
我通过使用更新版本的 API 解决了这个问题,其中 player.getCurrentTime() returns 一个浮点数。