2010-06-12 54 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;