开源FLV播放器FX Video中的Bug

FX Video是一个开源的基于Flex的flv播放器,不知道有没有人用过,它扩展自Flex中的标准组件VideoDisplay,即支持HTTP,又支持RTMP。最近在做公司的一个项目时用到了,发现它在用RTMP协议播放时,有几个Bug。
1. 还未设置其source属性时,进度条就已经加载了一段。
2. 基于RTMP协议播放时,本来应该是可以随时拖拽进度条的,它却不能。
3. 基于RTMP协议播放时,它不能通过点击进度条上的位置来播放影片的对应时刻。
通过分析其源代码,我找到了相应的解决方案。
1. 修改component.player.controls包下的FXProgressSlider类,将其私有属性_progress的默认值改为0.0001(只要是一个很小的数就行了,但不能是0,原值是20)。
2. 修改component.player.controls包下的FXSlider类,将其原方法:

private function get boundMax():Number
{
    return Math.max(thumb.width/2, bound.width - thumb.width/2) ;
}

改为:

private function get boundMax():Number
{
    return Math.max(thumb.width/2, this.unscaledWidth - thumb.width/2) ;
}

改完后,可以拖拽了,但是如果将进度条直接拖拽到最后时,界面会立即卡在拖拽前的那一帧上,很不友好,可以将原方法:
(更多…)

Posted in Flex. Tags: , , , . 没有评论 »