mciSendString () ошибка громкости setaudio 261

Я использую MCI, чтобы сделать что-то связанное со звуком, и все работает, кроме того, что я не могу изменить громкость. У меня есть следующий код:

mciSendStringA("open res/theme.wav type waveaudio alias maintheme", nullptr, 0, nullptr);
MCIERROR error = mciSendStringA("setaudio maintheme volume to 50", nullptr, 0, nullptr);

error 261. Программа работает нормально, но громкость не меняется. Любые предложения о том, что не так? (Две страницы поиска в гугле и ничего нет)

0

Решение

Согласно документации:

команда setaudio

Команда setaudio устанавливает значения, связанные с воспроизведением и захватом звука. Устройства цифрового видео и видеомагнитофона распознают эту команду.

lpszAudio
Флаг для воспроизведения и захвата аудио. В следующей таблице перечислены типы устройств, которые распознают команду setaudio и флаги, используемые каждым типом.

digitalvideo
Видеомагнитофон

Ваше воспроизведение аудио использует waveaudio устройство, которое не поддерживает setaudio команда.

Чтобы установить громкость воспроизведения звука, вам нужно будет переключиться на WaveOut API для воспроизведения, то вы можете использовать waveOutSetVolume().

0

Другие решения

Error 261 в соответствии с эти коды ошибок MCIERR_UNRECOGNIZED_COMMAND ошибка. Сама ошибка довольно очевидна: вы отправляете нераспознанную команду.

0

На самом деле это не решение, а просто обходной путь. Он отлично работает, если вы используете mp3-файлы. Чтобы загрузить mp3-файл:

mciSendStringA("open [file].mp3 type mpegvideo alias [soundalias]", nullptr, 0, nullptr);

Инструкция setaudio будет работать. Тем не менее, я не знаю, есть ли способ заставить это работать с файлами WAV …

0
По вопросам рекламы [email protected]