用API函数实现切换VCD的左右声道

2016-01-29 12:37 5 1 收藏

用API函数实现切换VCD的左右声道,用API函数实现切换VCD的左右声道

【 tulaoshi.com - ASP.NET 】


在用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)格式的文件有效。

来源:http://www.tulaoshi.com/n/20160129/1486861.html

延伸阅读
Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代...
土人的拙作《如何用API函数定义热键》在VB编程乐园发表后,很多网友纷纷来信,有的指出其中存在的问题并提出解决方的案(土人在此表示感谢!);有的则询问可不可以定义组合键等问题。土人不才,通过多方查找资料,才找到另一种定义热键的方法,在此把心得写出来,请各位网友指正! 三个API函数是必须的: RegisterHotKey——用于定义热...
BroadcastSystemMessage将一条系统消息广播给系统中所有的顶级窗口GetMessagePos取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime取得消息队列中上一条消息处理完毕时的时间PostMessage将一条消息投递到指定窗口的消息队列PostThreadMessage将一条消息投递给应用程序RegisterWindowMessage获取分配给一个字串标识符的消息编...
我曾经写过一个截获MessageBoxW的程序,可以看看,或许对你有一些帮助. 该程序是基于HOOK原理,主要是将自己的函数放到目标PROCESS的地址空间,这里是使用HOOK实现.首先建立一个MOUSE的HOOK程序,然后在全局鼠标HOOK的DLL中做截获动作,可以在PROCESS_ATTACH时做,也可以在鼠标的HOOK链函数中做. 建立全局HOOK我就不说了,可以在网上很多...