c# - fmodex 返回 ERR_FILE_BAD 在 Mono/Ubuntu 下播放 MP3 文件

标签 c# ubuntu mono mp3 fmod

我正在尝试使用 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/

相关文章:

c# - 在 Windows 环境与 Ubuntu 环境中执行 "dotnet lambda package"的不同包

c++ - 无法使用 ubuntu opencv c++ 打开相机

ubuntu - 404 响应附加到 webapi 响应

f# - 为 Mono 打包 F# 程序

c# - 如何绘制 DataGridViewComboBox 列中的非事件行?

c# - 如何将一个 WinForms 用户控件放在三个窗体上并同时更新所有三个窗体?

ubuntu - Emacs -nw 模式键绑定(bind)与统一冲突

c# - .NET 委托(delegate)是否用于事件?

c# - 发送 POST HttpWebRequest 并且不需要接收响应

c# - 如何在 C++ 中读取 IL