Функция auxGetVolume

Declare Function auxGetVolume Lib "winmm" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long

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

Возвращаемое значение

В успешном случае функция возвращает MMSYSERR_NOERROR. В случае ошибки возвращаются коды ошибок, например MMSYSERR_BADDEVICEID (недействительный идентификатор)

Параметры

uDeviceID
Идентификатор устройства
lpdwVolume
Текущие значения уровня громкости звука. Если поддерживаются раздельные настройки, то младшее слово определяет громкость левого канала, а старшее слово - правого. Если не поддерживается, то старшее слово игнорируется, а младшее слово определяет общую громкость (моно). Уровень громкости находится в диапазоне от &H0 (тишина) до &HFFFF (максимальный уровень)

Пример

' Получим текущий уровень громкости
' для первого дополнительного устройства
Dim auxinfo As AUXCAPS  ' информация об устройстве
Dim numvols As Long  ' число каналов
Dim lrvol As Long  ' общий уровень громкости
Dim lvol As Integer, rvol As Integer  ' раздельно для двух каналов
Dim retval As Long ' возвращаемое значение

' Определим, сколько каналов у первого устройства
retval = auxGetDevCaps(0, auxinfo, Len(auxinfo))
If retval <> 0 Then
  Print "Ошибк. Не могу определить устройство"
  End
End If
If (auxinfo.dwSupport And AUXCAPS_LRVOLUME) = AUXCAPS_LRVOLUME Then
  numvols = 2  ' есть два канала
Else
  numvols = 1  ' только один канал (моно)
End If

' Текущий уровень громкости
retval = auxGetVolume(0, lrvol)

If numvols = 2 Then
  lvol = Val("&H" & Hex(lrvol And (Not &HFFFF0000)))
  rvol = (lrvol And &HFFFF0000) / &H10000
  Print "Левый канал: "; Hex(lvol)
  Print "Правый канал: "; Hex(rvol)
Else
  lvol = Val("&H" & Hex(lrvol And (Not &HFFFF0000)))
  Print "Уровень громкости: "; hex(lvol)
End If

Смотри также

auxSetVolume

Категория

Звук

Реклама