如何设置麦克风音量? ( 积分: 200 )

  • 主题发起人 主题发起人 Dooing
  • 开始时间 开始时间
D

Dooing

Unregistered / Unconfirmed
GUEST, unregistred user!
很久没有写程序了,今天一个师弟问我怎么在delphi中设置麦克风的音量,就象语音聊天室那样用一个TrackBar拉动设置就可以了。看了半天没什么头绪(惭愧ing),只得请各位大侠帮忙教教了!
要求最好不用第三方空件,写出实现例子。如果要用第三方控件请告知哪里找到,怎么调用!
感激不尽!
 
很久没有写程序了,今天一个师弟问我怎么在delphi中设置麦克风的音量,就象语音聊天室那样用一个TrackBar拉动设置就可以了。看了半天没什么头绪(惭愧ing),只得请各位大侠帮忙教教了!
要求最好不用第三方空件,写出实现例子。如果要用第三方控件请告知哪里找到,怎么调用!
感激不尽!
 
呜,还没人回答。。。。
看来大富翁辉煌的时代已经成为往事。。。。
 
三个TrackBar的属性设置:Max:=255;Frequency:=16;

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, mmsystem;

type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
TrackBar3: TTrackBar;
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.DFM}

//音量控制
procedure TForm1.TrackBar1Change(Sender: TObject);
var
t,v:Longint;
begin

// if a=0 then
Exit;
t:=TrackBar1.Position;
v:=(t shl 8)or(t shl 24);
waveOutSetVolume(0,v);
end;


//左声道控制
procedure TForm1.TrackBar2Change(Sender: TObject);
var
t,v:Longint;
begin

t:=TrackBar2.Position;
waveOutGetVolume(0,@v);
v:=v and $ffff0000 or (t shl 8);
waveOutSetVolume(0,v);
end;


//右声道控制
procedure TForm1.TrackBar3Change(Sender: TObject);
var
t,v:Longint;
begin

t:=TrackBar3.Position;
waveOutGetVolume(0,@v);
v:=v and $0000ffff or (t shl 24);
waveOutSetVolume(0,v);
end;


//获得当前音量值
procedure TForm1.FormCreate(Sender: TObject);
var
v:longint;
begin

waveOutGetVolume(0,@v);
TrackBar2.Position:=hi(v);
TrackBar3.Position:=hi(v shr 16);
if hi(v)>hi(v shr 16) then

TrackBar1.Position:=hi(v)
else

TrackBar1.Position:=hi(v shr 16);
end;


end.



函数说明:

waveOutSetVolume
第一个参数是波形文件输出设备标识符;
第二个参娄是音量大小。这是一个32位的整数,低16位表示左声道的音量,
高16位表示右声道的音量。

waveOutGetVolume
第一个参数是波形文件输出设备标识符;
第二个参数是一个32位整数的指针。
 
谢谢饭前饭后大侠,但是这个是控制波形输出音量的,我需要的是控制麦克风录音输入音量的,各位大侠继续帮忙啊!
感激不尽!
 
up
请大家继续帮忙!
 
到我们的网站上下载一个 amixer 控件。我的那个【我的多媒体摄像机】就用到这个控件做录音方面的控制。
www.startor.cn
 
哈哈!谢谢两位大侠!
荷塘新月推荐的控件不错!
 

Similar threads

回复
0
查看
804
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部