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