从自定义容器向Flex / Flash提供原始MP3 / AAC数据

时间:2010-04-23 11:56:53

标签: flex flash actionscript-3 audio

快速浏览一下Flex文档后,我似乎找不到任何关于提供音频内容的参考,这些音频内容可以从自定义(可能是加密的 - 不用担心,这不是那么邪恶的)容器格式中播放。这是否可能,如果是这样,有人可以指出我正确的方向。

或者,如果这是不可能的,某种方式挂钩到磁盘/网络(磁盘在这种情况下更重要)声音播放机制的I / O,以从自定义包装器提供内存中支持的容器。

2 个答案:

答案 0 :(得分:1)

从Flash Player 10开始,可以将PCM /原始音频数据写入声音对象。

基本上,您在“空”声音对象上调用play,它将开始定期调度SampleDataEvent,请求数据。然后,您可以通过事件对象公开的数据ByteArray写入音频流。

http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/flash/events/SampleDataEvent.html?filter_flex=4

http://www.adobe.com/devnet/flash/articles/dynamic_sound_generation/index.html

此外,如果您对Actionscript中的音频编程的好文章和参考感兴趣,您可能想查看Andre Michelle的观点:

http://blog.andre-michelle.com/

http://lab.andre-michelle.com/

答案 1 :(得分:0)

flash.media.Sound必须是:

  • 构建/加载了URLRequest,
  • 通过嵌入继承其数据

目前没有规定将直接管道mp3(或aac或视频)数据传输到任何“媒体”对象,例如Sound。您只能获取Sound对象来为自己下载数据。有people who are upset about this,包括我自己;你并不孤单!

我说“现阶段”,因为Adobe将更新API以使其在未来版本中成为可能并不是不可想象的。对于现在,如果你真的需要能够做到这一点,你最好采用Juan提到的解码到动态声音的解决方法。

Adobe's bug tracker发布功能请求,或对现有功能进行投票!