2009-12-31 62 views
1

我正在使用相同的FLVPlayback組件在整個我正在構建的大型Flash網站中播放許多網頁轉換視頻。在每次轉換時,我使用myFLVPlayback.source設置組件的源,並在繼續進行每個頁面轉換之前監聽fl.video.VideoEvent.READY事件。只要每一對網頁之間的轉換使用不同的視頻,這就可以正常工作。重置FLVPlayback組件以用於具有相同源的播放

不幸的是,當兩個連續轉換需要調用相同的頁面到頁面轉換視頻時,我遇到了一個問題。當連續播放兩次相同的視頻時,將組件的source屬性設置爲其已有的值似乎不會執行任何操作,這意味着我的聽衆對於fl.video.VideoEvent.READY不會觸發。我可以做一些瑣碎的事情,比如將source設置爲一個小型的,從未使用過的FLV,然後將其設置爲FLV,我實際上將它用於過渡作爲「重置」組件的方式,但是我希望知道在這種情況下最佳實踐是什麼(只要像FLVPlaybackComponent這樣的最佳實踐可以用直白的臉面來討論)。

我已經仔細閱讀了該組件的livedocs,但空手而歸,並且在這個後期階段手動使用NetStream,NetConnection和Video對象並不是真正的選擇。

回答

3

我建議使用一個線束檢查您要播放的URL是否與上一個轉換相同,如果是,則只搜索(0)(即倒回視頻)而不是重置源。重置源可能會迫使視頻重新上傳(例如,如果瀏覽器緩存被禁用),這可能不是你想要的。

if (myFlvPlayback.source == nextTransitionUrl) { 
    myFlvPlayback.seek(0); 
    startTransition(); 
} 
else { 
    myFlvPlayback.source = nextTransitionUrl; 
    // The "ready" event will fire, and your event handler will start playback 
} 

看看FLVPlayback.seek()方法。

乾杯

+0

謝謝先生!像魅力一樣工作。 – justinbach 2009-12-31 15:31:28

0

看起來這一個已經解決了一段時間,但我想我反正插入內容。要完全模擬您描述的行爲,您可以檢查源代碼是否爲==到下一個URL,然後直接在flvPlayback實例上調用dispatchEvent。這樣,它的行爲就像它的URL不同,只有你編碼的手動干預只是檢查URL是否爲==。

相關問題