Объясните такую непонятку: я загоняю в файл ресурсов звук в формате *.wav, проигрываю его нижеприведенным кодом, но, почему-то, звук проигрывается по настроению компа, причем "слышно/не слышно" зависит от регулятора громкости акустики. На полной громкости играет, на средней или совсем тихой - "ФигВам"! Иногда два звука в одном модуле - один проигрывает, второй не слышно. Особенно в скомпилированном проекте.
Код взят из пакета примеров VB5, работаю на VB6.
- Код: Выделить всё
'константы взяты из VB5-примера - воспроизведение *.wav из *.res
Public Const SND_ASYNC = &H1 'асинхронное воспроизведение
Public Const SND_NODEFAULT = &H2 'заданный по умолчанию звук не используется
Public Const SND_MEMORY = &H4 'lpszSoundName указывает на файл памяти
'воспроизведение *.wav из *.res
Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As Any, ByVal uFlags As Long) As Long
Public Sub Sound(ByVal ResourceId As Integer)
Dim Ret As Variant
'возвращаемая строка конвертируется к Уникоду
SoundBuffer = StrConv(LoadResData(ResourceId, "CUSTOM"), vbUnicode)
Ret = sndPlaySound(SoundBuffer, SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY)
DoEvents 'Важно: эта функция необходима для асинхронно играющего звука
End Sub
Почему так, просветите!
С уважением - Dummiel