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 目标是一个例外,因为 Adobe 有一项协议,允许开发人员使用该格式而无需支付版税。此处对此进行了更多讨论: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>
我已将 <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 目标是一个例外,因为 Adobe 有一项协议,允许开发人员使用该格式而无需支付版税。此处对此进行了更多讨论: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>