【问题标题】:Get total time and time played from Flash Video component?获取从 Flash Video 组件播放的总时间和时间?
【发布时间】:2009-07-06 21:36:21
【问题描述】:

我已将视频加载到 FLVPlayback 组件中,我正在寻找一种方法来获取总时间和到目前为止播放的时间并将它们输出到两个文本字段,以便最终结果看起来像“00: 12/00:50”。

现在我正在通过组件检查器定义视频,但我最终希望也通过 actionscript 来定义这一点。任何提示将不胜感激。

【问题讨论】:

    标签: flash video streaming timestamp


    【解决方案1】:

    【讨论】:

    • 链接失效。用其中的实际代码示例将答案标记为正确答案不是更好吗?它们显然持续更长时间!
    【解决方案2】:

    获取时间:

    flvPlayer.playheadTime;// 给你当前的视频位置

    关于格式:

    公共静态函数 formatTime(time:Number, detailLevel:uint = 2):String { var intTime:uint = Math.floor(time); var hours:uint = Math.floor(intTime/ 3600); var minutes:uint = (intTime - (hours*3600))/60; var seconds:uint = intTime - (小时*3600) - (分钟* 60); var hourString:String = detailLevel == HOURS ?小时 + ":":""; var minuteString:String = detailLevel >= MINUTES ? ((detailLevel == HOURS && minutes = MINUTES)) ? "0":"") + 秒; 返回小时字符串 + 分钟字符串 + 秒字符串; }

    【讨论】:

      【解决方案3】:

      我知道这是一个老问题 - 但我一直在寻找一段时间并没有找到答案。

      如果您使用的是 FLVPlayback 组件,那么您仍然可以使用 MetadataEvent 来获取嵌入在 FLV/F4V 文件中的元数据。 我通过 AS3 创建了一个 FLVPlayback 实例,监听了 MedataEvent.METADATA_RECEIVED 事件,然后访问了事件返回的 info 属性。在代码中,它看起来像这样:

      
      package
      {
      import fl.video.FLVPlayback; // you will need to drag the component to the stage, then delete it.  This puts some stuff in the library and now you can access the class
      import fl.video.MetadataEvent;
      import flash.display.MovieClip;
      
      public class flvTest extends MovieClip
      {
      private var inputURL:String = "./test.flv"; // change this to the location of your FLV/F4V
      private var player:FLVPlayback;
      
      public function flvTest():void
      {
      player = new FLVPlayback();
      // set x,y,width,height values if you want
      player.autoRewind = true; // I use this so when you press stop, it goes to the first frame
      player.load( inputURL ); // you can use load() or source=
      player.addEventListener( MetadataEvent.METADATA_RECEIVED, getMetaFromFLV );
      
      addChild( player );
      }
      
      private var getMetaFromFLV( metadataEvent:MetadataEvent = null ):void
      {
      trace( "FLV Duration: " + metadataEvent.info.duration );
      }
      
      }
      }
      

      您显然需要一些播放器控件等,但此回复的关键是 MetadataEvent 部分。 事件返回的 info 属性包含嵌入在 FLV/F4V 视频文件中的所有元数据,因此您可以获得许多其他值。

      (许多其他搜索和帖子仅解释了如何从 NetStream 和类似内容中获取元数据,这些元数据在连接到 Flash Media Server 时使用 - 而在这里,我们正在访问本地文件并且只是想要文件应该的数据已嵌入其中)。

      我希望这对某人有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-27
        • 2021-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        相关资源
        最近更新 更多