2010-06-12 55 views
2

我正在研究如何在项目中使用和自定义FLVPlayback。如何去了解这一点很清楚,但我注意到了一件令人厌烦的事情。全屏播放时,首先Flash播放器会全屏显示,然后在跳至全屏显示视频本身之前,简要显示其原始大小的FLVPlayback组件。FLVPlayback,全屏流畅吗?

我注意到Youtube上这没有发生。视频在youtube上播放时,如何才能摆脱这种“闪烁”并让视频全屏显示?

非常感谢任何提示!

一般的FLVPlayback马塞尔

回答

0

与大多数内置到Flash的组件一起都是垃圾。使用NetConnection和NetStream类建立自己的flv播放器会更好。构建一次性良好且足够通用的编辑控制视觉效果,并为自己的项目提供防弹弹幕播放器。

http://actionscriptexamples.com/2008/02/26/loading-flv-files-in-actionscript-30-using-the-netconnection-and-netstream-classes/

+0

我同意这个组件有一些恼人的bug。我认为他们中的大多数人的主要原因是,令人遗憾的事实是,它建立在一个错误的,不可靠的和严重记录的API之上(NetStream和NetConnection吸引)。例如,本来应该被解雇的事件从来不会开火,或者只是在某些情况下开火,这是你自己想出来的。举个例子来说,就像检测视频的结尾那样简单的事情来说,需要花费大量的诡计。编写代码并不困难,但是正确的做法并不是那么简单(如果你问我,应该是这样)。 – 2010-06-12 19:33:02

+0

你是对的,我例如在我的项目中重用的自定义flv播放解决方案中,当flv加载时没有元数据,甚至flv具有元数据时经常发生这些事件,这种事件有时并不会触发。我很确定youtube没有使用flvplayback组件... 我的意思是,它更好地构建你的,而不是使用构建在这些buggy类之上的组件,至少如果它是你的,你可以支持它只是想知道为什么它不起作用。 – 2010-06-12 19:42:16

+0

同意。我也必须从头开始编写视频播放器,无论是在AS 2还是AS 3,尽管我希望我可以使用FLVPlayback(这对于资源来说已经很熟练了,并且还会泄漏内存来增加对受伤的伤害)。我还想补充一点,那就是渐进式/流式视频之间存在恼人的不一致(例如,如果您想循环播放视频,您必须考虑这些不一致之处)。 – 2010-06-12 20:09:39

0

只是说我已经使用的FLVPlayback上工作了很多次,确保它的马车,但我从来没有看到这个问题。你一定可以解决它。你如何全屏?我最近正在做这样的事情......

import flash.display.*; 
import flash.events.*; 
import fl.video.*; 
import flash.geom.Rectangle; 

. 
. 
. 

myFLVPlayback.fullScreenTakeOver = false; 
mc.stage.fullScreenSourceRect = new Rectangle(0,0,480,360); 
myFullScreenButton.addEventListener(MouseEvent.CLICK, onFullScreenButtonClicked); 

private function onFullScreenButtonClicked(e:MouseEvent):void { 
    mc.stage.displayState = StageDisplayState.FULLSCREEN; 
} 

(虽然我很欣赏你可能会在FLVPlayback皮肤使用全屏按钮,所以这可能不会是完美的)

注:我只是敲定了代码,因此可能不完美/完整。希望你会发现它很有用。

++我会确保你设置你的flvplayback的大小和规模,例如, myflvplayback.setSize(w,h)

++ myflvplayback.scaleMode = VideoScaleMode.NO_SCALE;