解码音频/音频播放(AS3)

时间:2010-07-03 01:01:05

标签: actionscript-3 audio decoding

我对学习如何在ActionScript 3中解码和播放音频感兴趣。我了解如何使用SAMPLE_DATA事件将字节写入Sound对象,因此这不是一个真正的问题。我想要了解的是如何在Flash Player中实现本机播放的备用音频格式。

我想我要问的是:我如何采用X格式的东西并将其“转换/解码”为WAV格式并将字节写入Sound对象,播放音频?我有兴趣为FLAC音频和可能的OGG音频编写解码器,因为这些似乎是一些最广泛使用的开源音频格式。

有人可以就此提出任何建议吗?

2 个答案:

答案 0 :(得分:2)

如果你想编写一个解码器,你应该首先看一下你要解码的格式规范。

ogg / vorbis规范可在此处找到:http://xiph.org/vorbis/doc/Vorbis_I_spec.html

另外,在Java中查看已经执行此操作的其他开源库(我不知道在Actionscript中编写任何内容),这可能会有所帮助,例如:{{ 3}}(我不知道这个库,我刚刚发现谷歌搜索“ogg vorbis开源”。

无论如何,你必须付出一些努力才能让它发挥作用,我并不是说这会阻止你,但我不确定Actionscript对于实时音频解码是否足够快。

答案 1 :(得分:1)

你可以尝试,但你不会有太多的咕噜声去做其他事情。在Flash 10之前,我写了一篇详细介绍hack to feed PCM data into sound output in Flash的文章。有人联系了,因为他们已经编写了一个AS3 Ogg解码器,但是......即使在完全优化代码之后,人们发现AVM2实际上并没有那么多。基本上,它相当慢,解码OGG是处理器密集型的。我看不出事情会发生这么多年以来的变化,因为CPU变得“更宽”,并没有那么快。 ActionScript是单线程的,因此您无法卸载到另一个核心。

可能值得一试this ......也许表现有所改善。

编辑:尽管如此,正如胡安所说,不要因为这个答案而气馁。我怀疑FLAC解码的计算需求可能远低于OGG,如果DSP让你兴奋,花时间去解决所有这些问题是100%的价值,即使Flash路线(可能)导致失望。就我个人而言,我认为Silverlight的MediaStreamSource看起来很有希望,但并没有真正涉足那么多。