Использование FMOD для C #? - PullRequest
7 голосов
/ 16 мая 2011

Я работаю с FMOD в C #. Я попытался импортировать файл fmodex.dll, выбрав "Проект-> Добавить ссылку" и просматривая для fmodex.dll, но я получаю ошибку:

Ссылка на ... не может быть добавлена. Убедитесь, что файл доступен, и что он является допустимой сборкой или компонентом COM

Это доступно, но я все еще получаю ошибку. Я прочитал руководство, в котором говорится, что fmodex_vc.lib используется для ссылки на файл fmodex.dll. Поэтому я пытаюсь, но я не могу найти, как связать файлы .lib в Visual Studio; поиск в Google всегда приводит меня к ссылкам на файлы .dll.

Ответы [ 4 ]

7 голосов
/ 16 мая 2011

Fmod написан на неуправляемом C ++, поэтому вы не можете ссылаться на него напрямую из приложения .Net.Существует обертка ac # для fmodex.dll в пакете fmod в каталоге с именем "fmod_wrapper", если я не ошибаюсь, что вы можете добавить его в свой проект и который позаботится о создании P / Invoking для вас.

2 голосов
/ 12 декабря 2011

Попробуйте 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();
}
1 голос
/ 16 мая 2011

Чтобы использовать FMOD в C #, вам нужно обернуть функции и структуры FMOD с помощью p / Invoke. Эта задача была решена для вас в проекте с открытым исходным кодом fmodnet

0 голосов
/ 16 мая 2011

Чтобы добавить элемент COM в проект VS, выполните следующие действия:

  • Зарегистрируйте COM

  • Выберите «Добавить ссылку»

  • Выберите вкладку COM

  • Найдите элемент и выберите его.

Вы должны увидеть (послесборка), что VS создал библиотеку Interopt DLL в вашем каталоге BIN.

...