【问题标题】:AS3 - Embedded SWF video shows totalFrames == 0AS3 - 嵌入式 SWF 视频显示 totalFrames == 0
【发布时间】:2011-03-29 16:43:18
【问题描述】:

我有这部 1 分钟长的电影,我想将它编译成一个 AS3 项目。影片一开始是 MOV 格式,所以我使用 FFMpeg 将其转换为 FLV,然后再次使用 FFMpeg 从 FLV 转换为 SWF。

我正在使用 Embed 元数据将这部电影嵌入到 AS3 二进制文件中:

[嵌入(source="1.swf")] 私有变量_Vid:类;

我有一个容器 Sprite,这部电影将被添加到其中。在添加之前,我将嵌入的电影转换为 MovieClip:

var vid:Object = new _Vid(); 将 vid 作为 MovieClip 返回;

当我将生成的影片剪辑添加到舞台时,它会立即开始播放并且似乎可以正常播放。但是,当我检查影片剪辑的 totalFrames 属性时,它返回 0。而且影片剪辑似乎没有响应对 stopgotoAndStop 的调用。

通过将影片嵌入 Flash IDE 中的 SWF 然后以相同的方式嵌入结果,我得到了相同的行为,因此我将其添加到舞台的方式似乎有些不正常。有什么想法吗?

编辑:作为产品的要求,as3 电影无法从外部文件加载视频。它必须被编译进去,所以播放的.swf可以完全独立运行,而无需依赖其他外部文件。

编辑 2:经过进一步检查,产生的 MovieClip 实例:

[嵌入(source="1.swf")] 私有变量_Vid:类; var vid:Object = new _Vid(); 将 vid 作为 MovieClip 返回;

有一个属于 Loader 类的子对象,并且该子对象没有子对象。我尝试将孩子直接投射为 MovieClip,但无济于事。

编辑 3:根据我正在阅读的 herehere,NetStream 对象的 10.1 api 公开了一个名为 appendBytes 的方法。我仍然需要进一步研究,但我可以将 .flv 文件嵌入为八位字节流,并将字节手动提供给 Net Stream 对象以播放视频。我会在稍后发布我的测试结果...

【问题讨论】:

    标签: actionscript-3 video flash embed movieclip


    【解决方案1】:

    我最终将视频嵌入为二进制数据:

    [嵌入(source="1004.flv", mimeType="application/octet-stream")]

    然后使用NetStream.appendBytes() 将视频馈送到连接到Video 对象的NetStream。这很好用,而且 NetStream 可以暂停和重放。

    【讨论】:

      【解决方案2】:

      查看这些教程

      http://gotoandlearn.com/play.php?id=46

      http://gotoandlearn.com/play.php?id=129

      我认为,如果视频像您那样嵌入到 MovieClip 中,那么您唯一可以期待的行为就是您目前所得到的。它会播放,但你无法控制它。

      你为什么坚持嵌入它?它会使您的文件更大,并且在 swf 完全加载之前不会播放视频。这是一个短视频,但它仍然比通过渐进式下载访问它需要更长的时间。

      诚然,第二个教程没有太多相关性,但为什么不添加它,它为您提供了更多关于如何在 Flash 中处理媒体的范围。 OSMF 是一个新框架,我认为了解它是有意义的。

      【讨论】:

      • 这些教程都没有谈到嵌入视频文件,我明确地包含在我的问题中。这是产品的要求...无法从网络位置下载视频。
      • 我发现你在减号方面有点快。看来您甚至都懒得看第一个教程,Lee Brimelow 从一开始就明确指出他正在使用的视频在他的桌面上,而不是网络位置!现在,如果您不了解教程,请不要怪我。幸运的是,这里的大多数人都不像你!不要把你的沮丧发泄在那些试图帮助你的人身上。就像我们在这里所做的那样尝试和学习。我的建议,放松,退后一步,再看一遍教程,当你终于明白时,只需摆脱这个减号并将你的问题标记为已回答。
      • 实际上,我确实费心详细查看了这两个教程。第一个视频的作者确实在视频中提到了“嵌入”一词,但从视频文件实际编译到生成的 .swf 文件的意义上说,它并不是嵌入的。请注意我原始问题中的 [Embed] 元数据标签。您的回答完全无关紧要-因此是-1。无关个人,您的回答与我的问题无关。
      • 你对我的 -1 和评论读得太多了。你把这两个都看作是我对这个问题感到沮丧的结果,这是你的一个很大的假设。我只是按照预期使用 Stack Overflow。否决不相关的答案是使该网站成为真正出色资源的部分原因。它会过滤掉不能准确回答所提问题的内容。
      • 你说得对,让我们按预期使用 StackOverflow 并让其他人决定答案是否无关紧要,但请再次阅读您的问题,您描述的是您所做的,而不是您需要的。您在哪里说过使用 [Embed] 元标记嵌入视频是先决条件?我为您提供了两种处理视频的方法,试图为您提供解决此问题的不同范围。将视频嵌入到 MovieClip 以添加到另一个 MovieClip 的原因是什么?您打算如何控制电影的播放?这没有任何意义?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多