AS3:根据播放的视频流定期调用外部功能

时间:2013-03-04 21:15:03

标签: actionscript-3 callback video-streaming netstream

我实现了一个flex应用程序来播放来自Red5媒体服务器的传入视频流。

private function playStream(streamName:String, offset:int):void {
  stream = new NetStream(connection);
  stream.play(streamName + ".flv", offset);
  var streamVideo:Video = new Video();
  streamVideo.attachNetStream(stream);
  display.addChild(streamVideo); }

playStream方法从offset参数定义的位置播放给定的流。现在我想根据播放的视频流更新我的页面内容。或者更具体地说,我希望在视频中的每分钟后调用一个更新内容的actionscript方法。我应该因为这个原因使用Timer吗?

祝你好运

1 个答案:

答案 0 :(得分:0)

是的,您需要使用Timer个对象。但是,请勿使用Timer来确定用户在播放视频时所处的位置。您应该使用NetStream的{​​{3}}属性。

您还应该在NetStatusEvent方法中为playStream()添加事件监听器。特别是,您要检查此事件的time属性(从技术上讲,它是info.code属性)。这有几个有用的消息,您将需要知道:视频播放开始/停止/暂停时,用户执行搜索时,等等。这样,您可以管理Timer并在用户与视频播放器进行互动时有效地更新用户界面。

NetStatusEvent上的一些相关代码如下。但是检查完整列表,你可能会找到其他可以帮助你的人。

  • NetStream.Pause.Notify(用户暂停播放,根据需要启动/停止计时器)
  • NetStream.Play.Start(播放开始,启动计时器)
  • NetStream.Play.Stop(播放停止,停止计时器)
  • NetStream.Seek.Notify(用户寻求新点,更新用户界面)