Using FMOD for C#?
本文关键字:for FMOD Using | 更新日期: 2023-09-27 17:56:40
我正在用 C# 使用 FMOD。我尝试通过选择 Project->添加引用并浏览fmodex.dll
来导入fmodex.dll
文件,但我收到错误:
参考...无法添加。请确保该文件可访问,并且它是有效的程序集或 COM 组件
它是可访问的,但我仍然收到错误。我阅读了指南,它说在链接到fmodex.dll
文件时使用fmodex_vc.lib
。所以我尝试了,但我似乎找不到如何在 Visual Studio 中链接到 .lib 文件;搜索谷歌总是引导我链接到.dll文件。
Fmod 是用非托管C++编写的,因此您无法直接从 .Net 应用程序引用它。如果我没记错的话,在名为"fmod_wrapper"的目录下的 fmod 包中有一个 fmodex 的 c# 包装器.dll它可以添加到您的项目中,它将负责为您制作 P/调用。
尝试 https://github.com/madrang/FmodSharp 已经工作了一段时间。它应该比当前的 Fmod 包装器更好。
而不是像在 C# 中使用 C++ 那样使用句柄和编码。FmodSharp包装器是面向对象的,无需考虑使用句柄。
public static void Main (string[] args)
{
Console.WriteLine ("Fmod Play File Test");
Xpod.FmodSharp.Debug.Level = Xpod.FmodSharp.DebugLevel.Error;
var SoundSystem = new Xpod.FmodSharp.SoundSystem.SoundSystem();
Console.WriteLine ("Default Output: {0}", SoundSystem.Output);
SoundSystem.Init();
SoundSystem.ReverbProperties = Xpod.FmodSharp.Reverb.Presets.Room;
if (args.Length > 0) {
foreach (string StringItem in args) {
Xpod.FmodSharp.Sound.Sound SoundFile;
SoundFile = SoundSystem.CreateSound (StringItem);
Xpod.FmodSharp.Channel.Channel Chan;
Chan = SoundSystem.PlaySound(SoundFile);
while(Chan.IsPlaying) {
System.Threading.Thread.Sleep(10);
}
SoundFile.Dispose();
Chan.Dispose();
}
} else {
Console.WriteLine ("No File to play.");
}
SoundSystem.CloseSystem();
SoundSystem.Dispose();
}
为了在 C# 中使用 FMOD,您需要使用 p/Invoke 包装 FMOD 函数和结构。此任务已在开源项目 fmodnet 中为您处理
若要将 COM 项添加到 VS 项目,请执行以下步骤:
-
注册 COM
-
选择"添加引用"
-
选择"COM "选项卡
-
浏览到项目并选择它。
您应该看到(在构建后)VS已经在BIN dir中创建了一个Interopt DLL库。