我正在做一个 AS3 项目,正在播放视频 (H264)。由于某些特殊原因,我想去某个职位。
a) 我尝试使用 NetStream.seek()。在那里它只进入关键帧。在我当前的设置中,这意味着,我可以每 1 秒找到一个位置。 (为了获得更好的分辨率,我必须使用尽可能多的关键帧对电影进行编码,即每一帧都是关键帧)
- 这绝对不是我最喜欢的方式,因为我不想重新编码所有视频。
b) 我尝试使用 NetStream.step()。这应该让我有机会慢慢地从一帧走到另一帧。但在文档中它说:
仅当数据从 Flash Media Server 3.5.3 或更高版本流式传输且 NetStream.inBufferSeek 为 true 时,此方法才可用。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#step http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#step()
这是否意味着 Air for Desktop 无法实现?当我尝试时,没有任何效果。
有什么建议,如何解决这个问题?
问候并谢谢!
尼古拉斯
Flash 视频只能提前几秒,除非您有 Flash Media Server 托管您的视频。从技术上讲,这意味着您可以让它在 Air 中按预期工作,但是,视频必须是流式传输的(愚蠢的 adobe...)。
您有两个选择:
1)将素材导入为影片剪辑。 Flash IDE 有一个向导,如果您专门在非 FlashIDE 环境中进行开发,则可以转换并导出为外部资源,例如 SWF 或 SWC。然后,它将嵌入或运行时加载到您的应用程序中,让您可以访问 MovieClip 的每帧可步进方法。然而,这确实带来了一些音频同步问题(iirc)。而且,向后擦洗也不是MC的强项。
2)编写您自己的视频对象,加载图像序列并按顺序显示每个帧。您必须设置自己的音频同步功能,但这可能是除了 FLVComponent 或 NetStream 之外最直接的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)