如何确保Flash缓存flv文件?

时间:2011-06-28 18:03:44

标签: flash flv

我有一个SWF,在其生命周期内将几个相当重的.flv文件拖入媒体播放器 我正在使用player.source属性。 我不知道如何控制玩家是否缓存了flvs。我在Flash Player上看到了一个设置选项卡(您可以右键单击以显示设置)并且我已将滑块设置为“无限制”但在运行影片后,缓存信息量仍为0。

如果有人事先处理过此事,我很好奇。

2 个答案:

答案 0 :(得分:2)

我很确定如果您只使用内置的flvPlayBack组件并使用httpStreaming流式传输.flv,则不会缓存您的文件。

过去,我使用NetStream下载.flvs并将其保存到缓存中。

类似的东西:

import flash.events.NetStatusEvent;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.net.URLRequest;
import flash.events.Event;

public var loader:NetStream;
public var dummy:Sprite;

public function loadFLV():void{
    var request:URLRequest = new URLRequest ('file_to_load.flv');
    var connection : NetConnection = new NetConnection();
    connection.connect(null);
    loader = new NetStream(connection);
    var dummy:Sprite = new Sprite();
    loader.play(request.url, true);
    loader.pause();//pause the playback so it doesn't play the video, it just buffers it.
    dummy.addEventListener(Event.ENTER_FRAME, onNetStreamEnterFrame, false, 0, true);
}

protected function onNetStreamEnterFrame(event : Event) : void {
    if(loader.bytesTotal == loader.bytesLoaded && loader.bytesTotal > 8) {
        //finished loading
        dummy.removeEventListener(Event.ENTER_FRAME, onNetStreamEnterFrame, false);
        loader.seek(0);
    }else{
        // still loading - you could do some progress stuff here if you wanted to.
    }
}

这只是我的头脑。我也很确定像BulkLoader这样的第三方加载器会为你做这件事。

答案 1 :(得分:0)

“设置”选项卡控制Flash应用程序可以通过SharedObject保存的信息量。它的浏览器可以缓存任何下载,包括那些Flash Player制作的内容; afaik,它无法通过Flash控制。