Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/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 Actionscript 3 NetStream立即暂停未获取元数据_Actionscript 3_Video_Video Streaming_Flash Cs5_Netstream - Fatal编程技术网

Actionscript 3 Actionscript 3 NetStream立即暂停未获取元数据

Actionscript 3 Actionscript 3 NetStream立即暂停未获取元数据,actionscript-3,video,video-streaming,flash-cs5,netstream,Actionscript 3,Video,Video Streaming,Flash Cs5,Netstream,我正在用FlashCS5和ActionScript3编写一个基本的视频播放器。对于这个基本播放器,我将NetStream连接到NetConnection,然后调用流的.play()方法开始加载。虽然我希望元数据和流开始缓冲,但我不希望立即开始播放,因此我立即调用流的.pause()方法。不幸的是,当我立即暂停时,我的流的客户端的onMetaData事件并不总是被调用,因此我不一定得到加载视频的总播放时间 作为一种解决方法,我将对“pause”方法的调用放在onMetaData侦听器中,但有时我的

我正在用FlashCS5和ActionScript3编写一个基本的视频播放器。对于这个基本播放器,我将NetStream连接到NetConnection,然后调用流的.play()方法开始加载。虽然我希望元数据和流开始缓冲,但我不希望立即开始播放,因此我立即调用流的.pause()方法。不幸的是,当我立即暂停时,我的流的客户端的onMetaData事件并不总是被调用,因此我不一定得到加载视频的总播放时间

作为一种解决方法,我将对“pause”方法的调用放在onMetaData侦听器中,但有时我的视频在接收元数据之前会播放一点,因此会继续播放,直到收到元数据为止


有没有一种好方法可以阻止我的流播放,并且仍然可以获取我的视频元数据?

当触发
NetStatusEvent.STATUS
事件
NetStream.Play.Start
时,应该调用pause

更新:

对于非常短的流(例如,
buffer
duration
NetStream.Play.Start
很可能在
onMetaData
回调之前被触发


在暂停NetStream.Play.Start之前,检查是否提供了元数据,如果没有,请直接暂停,等待元数据暂停(只需设置一个标志,例如
pauseOnMetaData=true
)。

好的,这里有一个简单的小方法,可以从不同的角度来考虑这个问题。。。不要立即将视频对象附加到流对象。在不显示视频对象的情况下,在显示“请稍候”视频的同时开始播放流。在onMetaData侦听器中,查看之前是否存储了持续时间。如果不是,则假设这是对onMetaData的第一次调用,存储持续时间,暂停播放,将流搜索到0,然后附加视频对象


用户将看到一个“请稍候”的提示,等待片刻,然后视频将出现,暂停并准备按预期的持续时间播放。用户在等待时将完全不知道流向前播放了一点。

问题是,NetStream.Play.Start事件可能在接收元数据之前触发。我认为这并不能保证在调用pause时会有元数据,而暂停会阻止它接收。即使此时调用pause,流仍会继续缓冲,并且您仍会接收元数据。这两个事件应分别处理。Hhmm。我觉得当我停下来的时候,我从来没有收到元数据。谢谢,我将尝试一下。如果您这样做,您还需要将NetStream的SoundTransform设置为0卷,否则您可能会在播放视频时听到声音以获取元数据。HA!谢谢@DanK,我正在开发一个没有音频输出(扬声器或耳机)的系统,所以这绝对是一个令人讨厌的小疏忽