ПрограммированиеФорумЗвук

OpenAL: не получается уменьшить/увеличить громкость

#0
19:21, 22 мар 2017

Привет.

Не понимаю что делаю не так. Вот код:

void CustomSound::SetVolume(const float volume)
{
  mVolume = volume;
  alSourcef(mSourceID, AL_GAIN, volume);
  CheckALError();
}

mSourceID валидный, volume тоже правильный. Ошибки нет по CheckALError();

Куда можно ещё посмотреть ?

Заранее благодарю.

P.S. На начальном этапе ставлю AL_GAIN в 0.0 чтобы потом плавно увеличивать громкость при воспроизведении и уменьшать при паузе или остановке проигрывания.

#1
20:28, 22 мар 2017

Gladiator
AL_GAIN меняешь от 0 до 1?

#2
20:37, 22 мар 2017

mr.DIMAS
да

Заметил еще одну странность, когда стопаю сигнал и снова воспроизвожу, то при повторном воспроизведении я проверяю какое состояние у звука AL_PAUSED или AL_STOPPED. Так вот почему-то у него стоит AL_INITIAL.

#3
22:13, 22 мар 2017

Я так понимаю что ты делаешь сначала alSourceStop, затем alSourcePlay. Тут логично что будет AL_INITIAL, ибо AL_STOPPED-источник перед воспроизведением делает внутри себя alSourceRewind который и ставит состояние в AL_INITIAL.

Вообще странная у тебя проблема, может где-то еще накосячил? Кода много? Может покажешь все что использует OpenAL. Я с ним хорошо знаком, но такое как у тебя первый раз вижу

#4
22:37, 22 мар 2017

mr.DIMAS
да, накосячил.. Нашёл.. звук ставлю а play не вызываю.. ;D

Спасибо! :)

ПрограммированиеФорумЗвук

Тема в архиве.