在用VB编写播放器时,经常会涉及到声道的切换问题,用directShow及其它方法虽然可以解决,但过于麻烦,且VB对directShow支持得不太好,下面讲述了使用MCI命令切换VCD声道的方法。
'首先加一个picture控件到窗体上以便于显示图像
'定义变量
dim sTheFile as string '文件名
dim sAlias as string '别名
dim lReturn as long '返回值
sAlias = "VCD"
sTheFile = "c:\songs\吉普赛情人.dat"
'打开文件
lReturn = mciSendString("open " & sTheFile & " ALIAS " & sAlias & " parent " & Picture1.hWnd & " style child", vbNULLString, 0, 0)
'播放
lReturn = mciSendString("play " & sAlias, vbNullString, 0, 0)
'关闭
lReturn=mciSendString("close " & sAlias, vbNullString, 0, 0)
'切换声道的操作
'左声道
lReturn = mciSendString("setaudio " & sAlias & " source to left",vbNullString,0,0)
'右声道
lReturn = mciSendString("setaudio " & sAlias & " source to right",vbNullString,0,0)
'左右平均(即左右声道的声音混合)
lReturn = mciSendString("setaudio " & sAlias & " source to average",vbNullString,0,0)
'立体声
lReturn = mciSendString("setaudio " & sAlias & " source to stereo",vbNullString,0,0)
用以上方法切换声道即可实现两个音箱都有声音,但是仅对VCD(即Mpeg1)格式的文件有效。