openfl - 音频不适用于cpp目标

时间:2015-08-05 09:59:10

标签: android c++ audio haxe openfl

我已将<assets path="assets/audio" rename="audio" />添加到a​​pplication.xml文件中。

我通过调用Assets.getSound("2_3_1.mp3");加载音频文件夹中的“mp3”文件,然后在该(声音)对象上使用.play();方法播放该文件。

声音在flash目标中播放。 但是不要在cpp目标上玩。我主要针对我的应用程序定位Android(cpp)和iOS(c#)目标。

调试windows (cpp)目标时,会在控制台中显示以下错误:

Sound.hx:99: Error: Could not load "audio/2_3_1.mp3"
Error opening sound file, unsupported type.
Error opening sound data
Done(0)

1 个答案:

答案 0 :(得分:1)

我认为在Windows和大多数其他目标上都不支持mp3,因为该决定与格式的许可成本有关。

Flash目标是一个例外,因为Adobe签署的协议允许开发人员使用该格式而无需支付版税。这里将对此进行更多讨论:http://www.openfl.org/blog/2013/09/18/to-mp3-or-not-to-mp3/

解决方法是将.ogg格式用于非Flash平台的音频,并通过在Project.xml中指定资产路径来包含每个平台的音频文件,例如:

<assets path="assets/music" type="music" if="flash"> <!-- mp3s --> </assets> <assets path="assets/music" type="music" unless="flash"> <!-- oggs --> </assets>