Flash 在swf文件中嵌入二进制视频数据
在编译时(使用Flash 在swf文件中嵌入二进制视频数据,flash,actionscript-3,air,flv,embedding,Flash,Actionscript 3,Air,Flv,Embedding,在编译时(使用[Embed]metatag),是否可以播放swf中嵌入的数据中的视频 Flash CS3等提供的“导入视频->嵌入”功能是不可接受的,因为它有许多严重的限制(包括声音同步问题、最大帧数和其他注意事项) 我感兴趣的是能够将flv视频数据捆绑到swf(以及其他资产)中,这些数据将由AIR应用程序播放 我认为这是办不到的。有人不同意吗?您可以使用Flash IDE将flv导入swf文件-我以前已经这样做过。你可以像声音一样把它放到电影剪辑的时间线上,然后把电影剪辑放到舞台上播放。在Fl
[Embed]
metatag),是否可以播放swf中嵌入的数据中的视频
Flash CS3等提供的“导入视频->嵌入”功能是不可接受的,因为它有许多严重的限制(包括声音同步问题、最大帧数和其他注意事项)
我感兴趣的是能够将flv视频数据捆绑到swf(以及其他资产)中,这些数据将由AIR应用程序播放
我认为这是办不到的。有人不同意吗?您可以使用Flash IDE将flv导入swf文件-我以前已经这样做过。你可以像声音一样把它放到电影剪辑的时间线上,然后把电影剪辑放到舞台上播放。在Flash CS3中,执行文件>导入>导入视频并选择flv。选择视频,然后在向导的下一站选择“嵌入…”,这里是指向的链接 我自己没有这样做,但我看不出有什么理由可以从加载的swf库访问flv
仅供参考:看起来这是一个被推迟的错误。Adobe目前似乎不允许使用嵌入元标记进行嵌入。下面是一个关于这个问题的讨论和链接。可以使用Flash IDE将视频嵌入到SWF中,但这不是一个很好的选择: “播放仅限于简单的播放和停止命令以及视频 帧速率必须与主机的帧速率匹配 电影,一个重要的考虑因素 将需要为 最低公分母下载 速度。” “嵌入式系统的最大限制 视频是指具有最大 无法同步16000帧和音频 保持两分钟以上。”
这些引语来自。它有点老了,但据我所知,关于嵌入视频的说法仍然成立。哦,是的,因此显然可以使用
embed
meta标记将二进制数据嵌入swf中
[Embed(
source="local_data_file.flv",
mimeType="application/octet-stream") ]
private static var __FlvClass123:Class;
protected static var flvData:ByteArray = new __FlvClass123();
在这个阶段,我无法回答您是否可以从ByteArray播放嵌入式视频…只要您的视频是FLV,那么答案是肯定的-您可以使用
NetStream.appendBytes()
播放嵌入式ByteArray
:
public class Main extends MovieClip
{
[Embed(source="sample.flv", mimeType="application/octet-stream")]
private var SampleVideo:Class;
public function Main():void
{
var video:Video = new Video(320, 240);
addChild(video);
var netConnection:NetConnection = new NetConnection();
netConnection.connect(null);
var netStream:NetStream = new NetStream(netConnection);
netStream.client = {};
video.attachNetStream(netStream);
var byteArray:ByteArray = new SampleVideo();
netStream.play(null);
netStream.appendBytes(byteArray);
}
}
只是有同样的问题,并寻找一个更“灵活”的解决方案。 如今,动态嵌入似乎非常简单:
public function loadSWF(){
var _assetLdr:Loader;
_assetLdr = new Loader();
_assetLdr.load(new URLRequest("1.swf"));
_assetLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, this.handleComplete);
addChild(_assetLdr);
}
public function handleComplete(event:Event):void {
trace("complete");
var loaderInfo:LoaderInfo=event.target as LoaderInfo;
var content:MovieClip = loaderInfo.loader.content as MovieClip;
addChild(content);
}
注意:检查库.swf
中的屏幕偏移。在我的例子中,它们是乱七八糟的,所以它只是在屏幕外显示。(谢谢你的咖啡)
祝你今天愉快 这是一个非常好的观点。我知道FlashCS3的“导入视频->嵌入”功能,但由于这些原因,它不是一个可接受的解决方案。我正在寻找另一种嵌入视频的方法。我想象着实例化一个
[Embed]
ed类并将其传递给视频播放器。不幸的是,这种方法有很多我无法接受的警告。最大的问题是声音同步问题,但也存在帧数限制和其他杂项限制。我已经更新了这个问题。谢谢你的回答!谢谢你的链接,詹姆斯,特别是kirupa.com的帖子。让我感觉不那么疯狂。哇!从FP 10.1开始!我怎么会错过这个?!干杯哇。你说“这些天”?闪光仍然。。。喜欢存在?你让我大吃一惊!另外,我的问题实际上规定了嵌入,而这个解决方案是运行时下载电影文件,除非我遗漏了什么。