【发布时间】:2018-04-09 13:19:33
【问题描述】:
我正在寻找一种在多平台游戏(Android 和 Windows)中以低开销播放多种快速音效(WAV 格式)的方法。
我尝试使用 TMediaPlayer 组件,但创建多个实例会增加启动和关闭时间的大量开销。
我研究并发现此代码提供了一种低开销的方法。遗憾的是,该代码与 Android 下的 Delphi 10.2 (Tokyo) 不兼容(windows 工作正常)。在 Android 下,永远不会触发 onLoadComplete,导致 GLoaded 标志保持为 false 并且应用程序冻结。 http://www.fmxexpress.com/free-game-audio-manager-wrapper-class-in-delphi-xe6-firemonkey-for-android-ios-windows-and-osx/
有谁知道替代解决方案或能理解为什么 GameAudioManager 回调函数无法触发?
【问题讨论】:
-
它可能有助于提供您如何实际使用 TGameAudioManager 的代码。我猜如果文件不存在就不会调用onLoadComplete,例如
-
GameAudioManager 存档中包含的多平台示例代码(包括多个 wav 文件)冻结。我还仔细检查了“fileexists”是否返回 true。这是存档fmxexpress.com/wp-content/uploads/2014/08/GameAudioManager.7z
-
您检查过 BASS 音频库 (un4seen.com)。现在它不是免费的,但它确实支持 Delphi 支持的所有平台。更不用说它还支持大量不同的文件格式。与游戏音频管理器不同的是,您提到 BASS 音频适用于播放短音频文件或较长音频文件,您可以自行控制是否要从内存或直接从磁盘播放某些文件。
-
我不确定我的游戏的任何收入是否能支付许可费用,所以现在我正在尝试寻找免费的替代方案,但如果情况发生变化,我已将您的建议添加为书签.
-
对于 android/ios,您可以尝试 ALvideoPlayer (github.com/Zeus64/alcinoe) 并使用它来播放声音。我在启动时在不到 100 毫秒的时间内加载了大约 10 个视频播放器
标签: delphi firemonkey