Adobe Flash:从文件播放Speex Audio

时间:2010-08-05 12:47:36

标签: flash actionscript-3 speex

我试过很难找到一个展示如何在flash中播放speex编码音频的例子。我尝试了以下代码 -

var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
var stream_ns:NetStream = new NetStream(connect_nc);
stream_ns.play("RE-Sample.m4a");

avaible at -

http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player _03.html

我用.flv视频和AAC编码的音频文件测试了上面的代码,它运行得很好。但是当我尝试使用stream_ns.play(“sample.spx”)时,我得到了一个未找到流的异常。

我是否使用错误的容器(.spx)进行speex音频。是否支持从文件中播放speex音频?请帮忙!

(如果你能提供一个例子,那将会很棒。)

4 个答案:

答案 0 :(得分:2)

ArtBIT在我的测试中似乎也是正确的。 SPX只能作为FLV容器中的音频编解码器播放。您有几个选择:

  1. 通过重新编码FLV容器,提前打包您的SPX文件。
  2. 使用FMS或Red / Xuggle进行“实时”转码(http://www.pubbs.net/200906/osflash/18579-red5-streaming-speex-audio.html)
  3. 将SPX作为bytearray加载,然后使用像这样的库用FLV包装它:http://www.zeropointnine.com/blog/simpleflvwriteras-as3-class-to-create-flvs/
  4. 希望这有帮助。

答案 1 :(得分:1)

您必须将它放在flv容器中,任何闪存介质服务器都不会以任何其他形式允许它(除非它是直播)。您可以使用较新版本的ffmpeg转换文件,如下所示:
ffmpeg -i RE-Sample.m4a -y -vn -acodec libspeex -ac 1 -ar 16000 -f flv RE-Sample.flv

答案 2 :(得分:1)

这听起来像是Alchemy的工作。使用Alchemy,您可以将Speex解码器从C转换为AS3。以下是Adobe Labs的链接,其中有一个将OggVorbis解码器从C转换为AS3的示例:http://labs.adobe.com/wiki/index.php/Alchemy:Libraries

答案 3 :(得分:0)

根据http://osflash.org/flv#codecs1 flv是唯一支持speex编解码器的容器。

尝试使用flv?