具有“双”进度条的视频播放器(视频加载/视频播放进度)

时间:2012-09-27 10:16:41

标签: actionscript-3 flex progress-bar flex3

我正在实施基于Flex 3的FLV视频播放器,我想添加类似于YouTube播放器的功能。

我希望进度条既显示视频显示进度,又显示视频加载状态。我该如何实现这种行为?

在彼此的顶部使用2个进度条?我也在使用Flex mx:VideoDisplay组件,我需要更改它吗?

1 个答案:

答案 0 :(得分:1)

是的,您应该在放置laodingbar的背景中放置两个彼此顶部的条形图,并在Front中放置当前位置条。

但最后这是一项比它看起来更具功能性的工作...... 我将创建一个实现所有条形/滑块功能的新类。

laoder只监听更新(val)以将其新值设置为百分比。 playbar将需要点击和mousedown / mousemove上的一些功能来寻求和再次设置更新功能,包括在玩家后期用户交互中触发搜索的事件。

然后将加载栏更新绑定到播放器的progress事件 所有活动都可以在这里找到

//setting up loadingbar
player.addEventListener(ProgressEvent.PROGRESS,slider_update);


//function to update the slider
private function slider_update(E:ProgressEvent):void{
    var percentage:float = 0;
    if(E.bytesTotal != 0){
       E.bytesLoaded/E.bytesTotal
    }
    slider.update(percentage)
}

目前的playbar几乎一样

//listens to statechanges of the player to handle updates for cur-pos

player.addEventListener(VideoEvent.PLAYHEAD_UPDATE, checkStatechange);

private function checkStatechange(E:VideoEvent):void{
    if(player.totalTime!=0){
        timeSlider.update(E.playheadTime/E.totalTime);
    };

继续绑定点击以立即设置搜索 - 对于mouseDown和移动以使视频滚动成为可能... 实际上对于mousedown的搜索,mousemove应该在舞台上监听,所以mouseUp否则用户必须留在加载栏上,而在寻求这种情况时,大多数情况下几乎无法处理;) -玩得开心     }