actionscript-3 - Netstream 和 step() 或 seek()?

标签 actionscript-3 actionscript seek netstream

我在 AS3 项目中播放视频 (H264)。由于某些特殊原因,我想去某个职位。

a) 我尝试使用 NetStream.seek()。在那里它只转到关键帧。在我当前的设置中,这意味着我可以每 1 秒找到一个位置。 (为了获得更好的分辨率,我必须使用尽可能多的关键帧对电影进行编码,也就是每一帧都是一个关键帧)

  • 这绝对不是我最喜欢的方式,因为我不想重新编码所有视频。

b) 我尝试使用 NetStream.step()。这应该让我有机会从一帧到另一帧慢慢地走。但在文档中它说:

This method is available only when data is streaming from Flash Media Server 3.5.3 or higher and when NetStream.inBufferSeek is true.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#step ()

这是否意味着,Air for Desktop 是不可能的?当我尝试时,没有任何效果。

有什么建议,如何解决这个问题?

您好,谢谢! 尼古拉斯

最佳答案

除非您使用 Flash Media Server 托管您的视频,否则 Flash 视频只能以秒为单位进行播放。从技术上讲,这意味着您可以让它在 Air 中按预期工作,但是,视频必须是流媒体的(愚蠢的 adobe...)。

你有两个选择:

1) 将素材导入为影片剪辑。 Flash IDE 有一个向导,如果您只在非 FlashIDE 环境中开发,您可以转换并导出为外部 Assets ,如 SWF 或 SWC。然后这将被嵌入或运行时加载到您的应用程序中,使您可以访问 MovieClip 的每帧可步进方法。然而,这确实会带来一些音频同步问题 (iirc)。此外,向后擦洗也不是 MC 的强项。

2) 编写您自己的视频对象来加载图像序列并按顺序显示每一帧。您必须设置自己的音频同步功能,但它可能是除了 FLVComponent 或 NetStream 之外最直接的解决方案。

关于actionscript-3 - Netstream 和 step() 或 seek()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365479/

相关文章:

actionscript-3 - 文件引用与文件?

actionscript-3 - 在 Actionscript 3 中将键码转换为字符串

actionscript-3 - AS3 : Resizing a sprite without resizing its BitmapFill (or its contents for that matter)?

搜索完成时的Android exoplayer回调

android - 确定用户是否安装了应用程序 (AIR/AS3)

facebook - init() 因 OAuthException 失败

java - BufferedReader 性能低下

delphi - TADOTable,Seek和clUseServer如何结合?

java - Intellij Idea & SVN : How to add all new files on "Commit Directories"?

apache-flex - 检查 Flex 中的 UI 元素