Я пытаюсь добавить звук в мое приложение, используя FMOD, Visual Studio 2012 и C ++. Я получил последнюю версию (1.02) и установил ее. Кажется, все работает нормально, но (переменные?), Такие как FMOD_CHANNEL_FREE и FMOD_CHANNEL_REUSE, не определены. У всех, с кем я разговаривал, была эта проблема, и она никогда не решалась, и у всех в сети, похоже, нет этой проблемы. Еще одна вещь, которую я заметил, это то, что параметры для playSound изменились.
Для меня:
system->playSound(sound->second, FMOD_CHANNEL_FREE, false, 0);
Где-либо еще
system->playSound( FMOD_CHANNEL_FREE, sound->second, false, 0);
Я следовал установленным инструкциям, включая fmod.hpp и fmod_errors.h, удалил, переустановил, и гугл меня подвел. Если это помогает, параметр, необходимый в месте channel_free, является FMOD :: ChannelGroup
Есть идеи? Если вам нужно больше кода, оставьте комментарий (а не ответ), и я подчинюсь.
С переходом с FMOD Ex на FMOD Studio некоторые API были пересмотрены, и это один из таких случаев. Первый параметр из FMOD Ex версии System :: playSound был удален, поведение по умолчанию теперь всегда FMOD_CHANNEL_FREE.
Новый второй параметр предназначен для указания FMOD :: ChannelGroup для воспроизведения этого канала. Вам не нужно устанавливать это значение, укажите NULL, если вы хотите поведение FMOD Ex при воспроизведении звука в группе мастер-каналов.
Правильное использование для FMOD Studio будет:
FMOD::System *system = NULL; // create and init not shown
FMOD::Sound *sound = NULL; // create not shown
FMOD::Channel *channel = NULL;
FMOD_RESULT result = system->playSound(sound, NULL, false, &channel);
они не переключаются, вы смотрели заголовочный файл? Второй параметр — указатель на группу каналов, и вы пытаетесь передать ей целое число?
Независимо от этого, флаги бесплатного / повторного использования исчезли, просто удалите их. Внутренние каналы всегда «свободны».