将Speex编码为SWF版本10声音流

时间:2012-03-01 13:27:13

标签: flash speex

Adob​​e的“SWF文件格式规范v10”表示Speex编码数据可用于流声音(这里对“流声音”定义略有说明:“SWF文件格式支持播放声音数据的流声音模式并且与时间线紧密同步下载。在这种模式下,声音包与每一帧一起存储。“ - 这与任何FMS流无关,不需要ActionScript - 只需简单的SWF)。

这应该通过使用单个SoundStreamHead2标签来实现,其中StreamSoundCompression设置为11(这意味着“Speex”,如上述规范中所述),然后是N对ShowFrame和SoundStreamBlock标签。但是,这不起作用 - 当我以这种方式播放由我生成的SWF时,Flash Player不会播放声音。请注意,我能够生成包含流式MP3或PCM数据的SWF,然后播放完美。只是不是Speex ......

我严格遵守规范:http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf,第220页。

我尝试了流声音方法以及事件声音 - 两者都不起作用。

此外,我无法找到(在互联网上的任何地方)任何带有Speex编码的流声音(也不是事件声音)的样本SWF。他们甚至存在吗?无论如何,Flash CS5.5无法生成它们......

我只想知道Speex支持SWF流声音是否可以在规范中的任何地方找到。 (我知道FLV可以包含Speex,Flash Player可以从麦克风流式传输Speex,而FMS可以将Speex流式传输到其客户端,但这不是我要求的)

亲切的问候,

JK

1 个答案:

答案 0 :(得分:0)

我发现FLV文件格式文档更有用。看看here(页70)后面的标签格式,只需放入Speex编码输出。

请记住,当使用Speex

进行编码时,闪光灯仅支持16KHz / Mono / 16bit