【问题标题】:Adobe flash : Playing Speex Audio from a fileAdobe flash : 从文件播放 Speex 音频
【发布时间】:2011-03-25 19:02:51
【问题描述】:

我非常努力地寻找一个示例来展示如何在 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");

可在 -

http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player_03.html

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

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

(如果你能提供一个例子就好了。)

【问题讨论】:

    标签: flash actionscript-3 speex


    【解决方案1】:

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

    1. 通过重新编码,提前使用 FLV 容器包装您的 SPX 文件。
    2. 使用 FMS 或 Red/Xuggle 进行“实时”转码 (http://www.pubbs.net/200906/osflash/18579-red5-streaming-speex-audio.html)
    3. 将 SPX 加载为字节数组,然后使用如下库将其包装为 FLV:http://www.zeropointnine.com/blog/simpleflvwriteras-as3-class-to-create-flvs/

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          用 flv 试试?

          【讨论】:

            猜你喜欢
            • 2012-01-15
            • 1970-01-01
            • 2021-09-17
            • 1970-01-01
            • 1970-01-01
            • 2011-01-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多