OpenFL - 音频在 CPP 目标上不起作用

openfl - audio doesn't work on cpp target

本文关键字:目标 不起作用 CPP 音频 OpenFL      更新时间:2023-10-16

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

我通过调用Assets.getSound("2_3_1.mp3");来加载音频文件夹中的"mp3"文件,然后在该(sound)对象上使用.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的目标是一个例外,因为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>