2011-11-17 60 views
1

根据NetStream API,Flash可以通过调用ns.play("raw:filename");播放本地RAW视频。从ByteArray播放RAW视频数据

我的问题是Flash如何播放来自ByteArray的RAW视频数据?我基本上通过调用play(null)将我的NetStream对象设置为数据生成模式,但每当我拨打ns.appendBytes(byteArray)时都不会发生任何事情,因为显然,appendBytes仅支持FLV数据。

所以现在我希望有人以前也遇到过这个问题,我该如何让Flash播放来自ByteArray的原始视频数据?

回答

2

本质上,您不能使用appendBytes作为RAW文件类型。

您应该可以使用ns.play(“raw:filename”)播放视频。

就Flash Media Encoding而言,RAW是从Flash Media服务器(通常)发布的FLV文件片段。

如果播放文件名不可接受,则可能需要转换RAW文件(即FFmpeg)以将视频编码为FLV格式,然后进行流式传输。不过,我不相信RAW文件可以转换,或者需要更改Flash Media编码:http://help.adobe.com/en_US/flashmediaserver/devguide/WSecdb3a64785bec8751534fae12a16ad0277-8000.html

+0

略有不同的说明...有没有办法对音频做同样的事情?我的意思是使用声音对象,然后在侦听其SampleDataEvent.SAMPLE_DATA时调用其PLAY方法,我应该能够将原始字节数据传递给该声音对象?我在我的SAMPLE_DATA事件监听器上这样做,但没有声音出来 event.data.writeBytes(soundBA,soundBA.position); –

+0

您可以为声音做的最好的事情是我找到的是SoundLoaderContext(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundLoaderContext.html)。基本上,在播放前设定一个预播放时间。 –