Простое воспроизведение звука в FMOD - PullRequest
3 голосов
/ 24 января 2012

Я начинаю использовать FMOD API и у меня проблемы с воспроизведением звука. Я использовал учебник с этого сайта: http://glasnost.itcarlow.ie/~powerk/audio/AddFMODtoaproject.html и думаю, что у меня есть только взлом звука.

Это код, который я использую в моей функции инициализации OpenGL:

FMOD::System_Create(&system);// create an instance of the game engine
system->init(32, FMOD_INIT_NORMAL, 0);

system->createSound("sound.wav", FMOD_HARDWARE, 0, &sound1);
sound1->setMode(FMOD_LOOP_OFF);

system->playSound(FMOD_CHANNEL_FREE, sound1, false, 0);

Кто-нибудь знает, что не так? Или, может быть, есть другой способ для этого.

Ответы [ 2 ]

6 голосов
/ 25 января 2012

Во-первых, убедитесь, что вы проверили код возврата всех функций, убедитесь, что это FMOD_OK.

Во-вторых, вам необходимо регулярно вызывать System :: update, один раз за кадр для хранения FMOD.

Что касается вашей проблемы, то на какой вы платформе?Потрескивание, как правило, означает, что аппаратное обеспечение не успевает, чтобы исправить это, вы можете увеличить объем буферизации, которую выполняет FMOD.Это контролируется с помощью System :: setDSPBufferSize, попробуйте увеличить количество numBuffers.Вы можете определить текущие значения с помощью System :: getDSPBufferSize, также убедитесь, что вы вызываете System :: setDSPBufferSize перед System :: init, чтобы новые значения вступили в силу.

1 голос
/ 02 февраля 2014

Я не знаю, если вы звоните FMOD :: System :: Update () .. вам нужно вызывать это, по крайней мере, один раз за кадр

...