不能,delphi内的mediaplayer是调用系统的Media Player的函数,系统的Media Player都没有此功能,delphi内的更没有了,除非你自己做一个控件来完成。

解决方案 »

  1.   

    uses mmsystem;auxGetDevCaps 
    auxSetVolume()
    auxGetVolume
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Mmsystem, ComCtrls, StdCtrls;type
      TForm1 = class(TForm)
        TrackBar1: TTrackBar;
        TrackBar2: TTrackBar;
        TrackBar3: TTrackBar;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Label6: TLabel;
        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;
      //t的最大值为8位的二进制:11111111;
      //用v来表示音量的大小,这是个32为的整数
      //,高16位表示右声道的音量,低16为表示
      //左声道的音量
    begin
      t := Trackbar1.Position;//得到Trackbar的位置,
      //可用这个值来表示音量的大小
      v := (t shl 8) or (t shl 24);//将t作移8位、24位
      waveoutsetvolume(0,v);//设置音量
      Label4.Caption := IntToStr(Trackbar1.Position);
    end;procedure TForm1.TrackBar2Change(Sender: TObject);
    var
      t, v: longint;
    begin
      t := Trackbar2.Position;
      waveoutgetvolume(0, @v);//@表示指向变量v的指针(32位)
      //调用此函数的用意是得到右声道的值,做到在调节左声道的
      //时候,不改变右声道
      v := v and $ffff0000 or (t shl 8);//数字前加$表示式十六进制的数字
      waveoutsetvolume(0,v);
      Label5.Caption := IntToStr(Trackbar2.Position);
    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);
      Label6.Caption := IntToStr(Trackbar3.Position);
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      v: longint;
    begin
      waveoutgetvolume(0, @v);//得到现在的音量
      trackbar2.Position := hi(v);//设置左声道滑块的正确位置
      trackbar3.Position := hi(v shr 16);//设置右声道滑块的正确位置
    //注:函数hi(v)的作用为:返回一个16位无符号整数的高8位
    //如果v为32位,则高16位自动被自动忽略了。
    //只用高8位时可是调节更明显。
    //对波形文件可以用wavoutgetvolume函数, 对于cd文件可以用
    //auxgetvolume函数end;end.