openfl - 音频不适用于 cpp 目标

openfl - audio doesn't work on cpp target

我已将 <assets path="assets/audio" rename="audio" /> 添加到 application.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)

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

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

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

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