volume.bas

来自「mp3播放器」· BAS 代码 · 共 45 行

BAS
45
字号
Attribute VB_Name = "volume"
Type lVolType
    v As Long
End Type

Type VolType
    LV As Integer
    RV As Integer
End Type
Dim leftVolume As Single, rightVolue As Single

Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long

Public Function GetVol() As Single
    Dim lVol As lVolType, vol As VolType, LV As Double, RV As Double
    waveOutGetVolume 0, v
    lVol.v = v
    LSet vol = lVol
    LV = vol.LV: If LV < 0 Then LV = 65535 + LV
    leftVolume = 100 * (LV / 65535)

    RV = vol.RV: If RV < 0 Then RV = 65535 + RV
    rightVolume = 100 * (RV / 65535)

    If RV > LV Then LV = RV
    
    GetVol = LV / 65535
End Function

Public Sub SetVol(Level As Single)
    Dim lVol As lVolType, vol As VolType, LV As Double, RV As Double
    LV = Level * 65535: If LV > 32767 Then LV = LV - 65536
    RV = Level * 65535: If RV > 32767 Then RV = RV - 65536
    vol.LV = LV
    vol.RV = RV
    LSet lVol = vol
    v = lVol.v
    
    waveOutSetVolume 0, v

End Sub


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?