http://protofunc.com/jme/ media player,如何同步2个时间滑块(手动移动时)

时间:2012-03-21 11:11:11

标签: media-player html5-video html5-audio

帮助真正需要使用http://protofunc.com/jme/

管理的html5玩家

这提供了退出酷api但可能不足以满足我的需求。 http://protofunc.com/jme/documentation/documentation-api.html

我同时有2个玩家(1个视频,1个音频用于音频描述) 我正在寻找一种方法来同步手动位置处理滑块 .timeline-slider .ui-slider-handle (前进/后退位置)的手动移动。< / p>

如果播放可以同步, 播放示例(暂停的相同想法)

$(document).bind('play', function(e){
                            // $('video, audio').not(e.target).pause();
                            $('video, audio').not(e.target).play();
                        });

当操作其中一个句柄.ui-slider-handle时,它也会获得ui-state-active。所以应该可以知道一个(音频或视频)被触摸和离开,然后管理另一个以反映时间幻灯片(使用“.currentTime(myvalue)”强制其位置。

我做了很多像这样的尝试,但它一直处理,不仅在移动手柄时,所以这是一个性能问题:

  $('audio, video').bind('timechange', function(e, data){
newTime = data.time;
dnewTime = newTime - oldTime;// delta T (sec)
oldTime = newTime;
if (( dnewTime > 1) || (dnewTime < -1)) // handler has been moved widely delta time is big
{
$('video, audio').not(e.target).currentTime(newTime);
};
$('#jmeLog').html('newTime: '+ newTime + ' | dT: ' + dnewTime );
});

1 个答案:

答案 0 :(得分:0)

我对protofunc播放器一无所知,但在html5中我的代码在黑暗中会像......

yourVideoPlayer.addEventListener('seeked', function(){
    synchronizeMyTwoElements( yourVideoPlayer.currentTime );
});

 yourAudioElement.addEventListener('seeked', function(){      //not sure if it's seeked or onchange -> u have to check
    synchronizeMyTwoElements( yourAudioElement.currentTime );
});

//...
function synchronizeMyTwoElements( seekToTime ){
     yourVideoPlayer.currentTime = seekToTime;
     yourAudioElement.currentTime = seekToTime;
}