我正在尝试使用 fmodex 4.30.03 在 Mono/Ubuntu 下播放 MP3 文件。
我对 createSound() 的调用如下所示:
result = system.createSound(path,
(FMOD.MODE._2D | FMOD.MODE.HARDWARE | FMOD.MODE.CREATESTREAM),
ref sound);
根据 SDK 附带的 C# 示例。
result
设置为 19,ERR_FILE_BAD
.同样的事情在 Windows 下也能正常工作。我在 app.config 中有以下内容:
<dllmap os="linux" dll="fmodex" target="./libfmodex-4.30.03.so"/>
如果这不存在,fmodex 甚至永远不会被加载,所以我知道它已经到了这么远。
我传入的文件肯定存在,但如果我传递无效路径,我实际上会收到相同的错误消息。
最佳答案
我假设你设法让 FMOD 系统初始化和一切。 C# 包装器将字符串作为 unicode 传递给 FMOD,以便在 Linux 上 FMOD 不支持 createSound。要解决此问题,您需要更改 C# 包装器,删除传入的 FMOD_UNICODE 标志并确保输入 FMOD 的字符串是正常的 ASCII。
关于c# - fmodex 返回 ERR_FILE_BAD 在 Mono/Ubuntu 下播放 MP3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2845482/