Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 FLVPlayback剪辑加载延迟_Actionscript 3_Flash_Video_Loading_Flvplayback - Fatal编程技术网

Actionscript 3 FLVPlayback剪辑加载延迟

Actionscript 3 FLVPlayback剪辑加载延迟,actionscript-3,flash,video,loading,flvplayback,Actionscript 3,Flash,Video,Loading,Flvplayback,我正在Flash/AS3中构建一个叙述性的点击式信息亭应用程序。目前,我正在将几个(10+)本地加载的.flv文件加载到时间轴上的FLVPlayback组件中。我正在经历加载延迟,我想知道这种情况下的最佳实践/最佳情况是什么。这些都使用“加载带有播放组件的外部视频”选项进行视频导入 到目前为止,我尝试了两种方法来实现它: 在名为“video_player”的舞台上进行一帧、一个FLVPlayback播放,然后点击/用户操作切换视频,我执行以下操作: var new_flv:String = "n

我正在Flash/AS3中构建一个叙述性的点击式信息亭应用程序。目前,我正在将几个(10+)本地加载的.flv文件加载到时间轴上的FLVPlayback组件中。我正在经历加载延迟,我想知道这种情况下的最佳实践/最佳情况是什么。这些都使用“加载带有播放组件的外部视频”选项进行视频导入

到目前为止,我尝试了两种方法来实现它:

  • 在名为“video_player”的舞台上进行一帧、一个FLVPlayback播放,然后点击/用户操作切换视频,我执行以下操作:

    var new_flv:String = "next_flv.flv";
    
    video_player.stop();
    
    video_player.source("_flvs/"+new_flv);
    
    video_player.seek(0);
    
    video_player.play();
    
    这会导致从几秒到10秒的延迟

  • 这对我来说很不传统,但我在时间轴上使用了多个帧。每个帧在舞台上都有一个FLVPlayback实例,每个实例在组件参数的“源”属性中都有不同的相对路径(请参见)。代码根据帧标签在帧之间切换,然后单击“播放”(组件参数中的“自动播放”也处于禁用状态)

  • 问题是,再次加载需要很长时间。什么可以阻止这种行为?我在playhead上寻找的一个长flv()到不同的时间点?我是否可以在单独的FLVPlayback实例中预加载,类似于双缓冲


    任何提示或最佳实践都非常感谢。

    尽管您没有告诉我flv文件从何处加载(本地或远程),并且正如您所说的,您正在构建一个kiosk风格的应用程序,但我将在这里冒险说,您几乎肯定应该使用AdobeAIR作为kiosk应用程序

    没有理由创建多个
    FLVPlayback
    实例,它可以使用
    getVideoPlayer(index)
    播放多个视频,您可以通过调用
    close()
    来管理流


    如果您是远程加载文件,那么使用Adobe AIR,您可以使用
    FileStream
    类将每个视频下载到本地文件夹。这将加快播放这些文件的过程。

    在第一行中,我提到了“几个(10+)本地加载的.flv文件”。是的,在当地。这就是我对如此长的加载时间感到困惑的原因。让fla发布到.air应用程序而不是.swf会导致加载时间缩短吗?此外,我还添加了更多代码:FLV的切换。不过这很有用;我想我一直认为FLVPlayback只是一个视频播放器,而不是一个流管理组件。我建议AIR的原因是因为它是一个桌面运行时,因此不需要浏览器,您可以调用GC,而这是无法在浏览器中完成的。我不明白为什么加载时间会更快,但在任何一种环境中都不应该花费10秒。使用一个组件并在不使用框架的情况下管理文件应该可以解决您的问题。
    var new_flv_frame_name:String = "next_frame";
    
    this.gotoAndStop(new_flv_frame_name);
    
    this.video_player.play();