各位高手请指点指点,我想在vb多媒体中实现声道的控制该怎么办,我的意思是我要像那些播放器那样让左右喇叭都响左声道,或者左右喇叭都想右声道.我该怎么办啊,高手快救救我啊 !有没有这种功能的控件啊!可以给我吗?

解决方案 »

  1.   

    ’Code By 魑魅魍魉 
    ’mailto:[email protected] Private Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long 
    Private Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long 
    Const WAVE_MAPPER = -1& Public Function SetLR(ByVal L As Long, ByVal R As Long) As Long 
    Dim mLR As String 
    mLR = "&H" & Right("0000" & Hex(L), 4) & Right("0000" & Hex(R), 4) 
    waveOutSetVolume WAVE_MAPPER, CLng(mLR) 
    End Function 
    Public Function GetLR(ByRef L As Long, ByRef R As Long) As Long 
    Dim LR As Long 
    waveOutGetVolume WAVE_MAPPER, LR 
    L = CLng("&H" & Left(Hex(LR), 4)) 
    R = CLng("&H" & Right(Hex(LR), 4)) 
    End Function 以上2个自定义的函数可以方便的取得和设置左右声道。 如: Private Sub Form_Load() 
    Dim mL As Long, mR As Long 
    GetLR mL, mR 
    MsgBox "左" & mL & "--右" & mR 
    End Sub Private Sub Command1_Click() 
    SetLR 65535, 22222 
    End Sub 可以用一个Slider来进行细致的控制。 原理: waveOutGetVolume取得的音量值转换成16进制,高位是左声道的值,低位是右声道的值。 
      

  2.   

    starsoulxp(星魂.NET) :你误会我的意思了,我要的不是调节左右声道音量,不是声道平衡,
    我是要两个喇叭同时响左声道,或者同时响右声道啊!
    我是要两个喇叭同时响左声道,或者同时响右声道啊!
    我是要两个喇叭同时响左声道,或者同时响右声道啊!
    我是要两个喇叭同时响左声道,或者同时响右声道啊!
    我是要两个喇叭同时响左声道,或者同时响右声道啊!
      

  3.   

    http://community.csdn.net/Expert/topic/3324/3324990.xml?temp=.5277368
    http://community.csdn.net/Expert/topic/3429/3429751.xml?temp=.3764917
    http://blog.csdn.net/paopaoc/archive/2005/01/14/253005.aspx
      

  4.   

    用API切换VCD声道:
    http://blog.csdn.net/paopaoc/archive/2005/02/02/278104.aspx