Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在flex中,从编码字节动态加载声音对象_Apache Flex_Flash_Actionscript 3 - Fatal编程技术网

Apache flex 在flex中,从编码字节动态加载声音对象

Apache flex 在flex中,从编码字节动态加载声音对象,apache-flex,flash,actionscript-3,Apache Flex,Flash,Actionscript 3,我有一个传统的文件格式,其中包含嵌入的声音(以各种编码)。我希望能够在Flash(Air?)中播放这些声音,方法是从文件中读取声音字节,并用它们实例化声音对象 如果声音未编码(例如原始pcm),我发现可以使用新的flex 4 SampleDataEvent.SAMPLE_数据事件播放声音 但是,如果声音是经过编码的(例如mp3),那么我就不知所措了。SampleDataEvent.SAMPLE_数据预期的声音必须是原始pcm。据我所见,编码的声音只能通过[Embed]对其进行实例化,或者通过使用

我有一个传统的文件格式,其中包含嵌入的声音(以各种编码)。我希望能够在Flash(Air?)中播放这些声音,方法是从文件中读取声音字节,并用它们实例化声音对象

如果声音未编码(例如原始pcm),我发现可以使用新的flex 4 SampleDataEvent.SAMPLE_数据事件播放声音

但是,如果声音是经过编码的(例如mp3),那么我就不知所措了。SampleDataEvent.SAMPLE_数据预期的声音必须是原始pcm。据我所见,编码的声音只能通过[Embed]对其进行实例化,或者通过使用带有Sound.load()的URLRequest进行实例化


肯定还有第三条路吗?AMF还是e4x?

实际上只有两条路线供您选择。第一个是用ActionScript编写解码器。您可以使用Alchemy移植一些C/C++代码,从而使这项工作更容易(并且可能更高效)。这正是我让Ogg Vorbis播放与Flash一起工作的方式


另一个选项是在ByteArray内动态创建有效的SWF。该SWF可能包含由声音数据组成的嵌入式声音对象。在FlashPlayer10出现之前,很多人已经完成了类似的黑客攻击。我相信你可以找到一个好的起点。

我尝试了动态创建声音资产SWF的技术,它很有效。好主意。对于其他尝试此方法的人,我建议使用以下工具来掌握SWF格式:SWF Spec()、010 Hex Editor()、SWF Hex Template()和SWF tools()