unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, MPlayer, ExtCtrls, StdCtrls; //按钮类型定义
type
TMPBtnType=(btplay,btpause,btStop,btNext,btPrev,btstep,btBack,btRecord,btEject);
TButtonSet=set of TMPBtnType;
//窗体类定义
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
TB_l: TTrackBar;
TB_r: TTrackBar;
TB_vol: TTrackBar;
TB_mm: TTrackBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
PlayMbt: TButton;
StopMbt: TButton;
PauseMbt: TButton;
OpenMbt: TButton;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure OpenMbtClick(Sender: TObject);
procedure StopMbtClick(Sender: TObject);
procedure PauseMbtClick(Sender: TObject);
procedure PlayMbtClick(Sender: TObject);
procedure TB_lChange(Sender: TObject);
procedure TB_rChange(Sender: TObject);
procedure TB_volChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
private
{ Private declarations }
public
{ Public declarations }
//音量控制中的全局变量
vol:longint;
//程序中用到的自定义函数
procedure DomediaOpen;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Close;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
waveoutgetvolume(0,@vol);
TB_l.Position:=hi(vol);//设置左声道音量
TB_r.Position:=hi(vol shr 16);//设置右声道音量
TB_vol.Position:=hi(vol) or hi(vol shr 16);
TB_l.Max:=TB_vol.Position;
TB_r.Max:=TB_vol.Position;
end;procedure TForm1.OpenMbtClick(Sender: TObject);
begin
if not OpenDialog1.Execute then
exit;
MediaPlayer1.FileName:=OpenDialog1.FileName;
DomediaOpen;
PlayMbt.Click;
end;procedure TForm1.StopMbtClick(Sender: TObject);
begin
tb_mm.Position:=0;
StopmBt.Enabled:=False;
PausemBt.Enabled:=False;
PlaymBt.Enabled:=True;
MediaPlayer1.Stop;
end;procedure TForm1.PauseMbtClick(Sender: TObject);
begin
MediaPlayer1.Pause;
PausemBt.Enabled:=not PausemBt.Enabled;
PlaymBt.Enabled:=not PlaymBt.Enabled;
end;procedure TForm1.PlayMbtClick(Sender: TObject);
begin
if mediaplayer1.Mode=mpPaused then
begin
PlaymBt.Enabled:=False;
StopmBt.Enabled:=True;
PausemBt.Enabled:=True;
MediaPlayer1.Resume;
Timer1.Enabled:=True;
end
else
begin
MediaPlayer1.Open;
TB_mm.Max:=mediaplayer1.Length;
domediaopen;
MediaPlayer1.Play;
timer1.Enabled:=true;
if MediaPlayer1.Mode<>mpplaying then
mediaplayer1.Play;
playmBt.Enabled:=False;
StopmBt.Enabled:=true;
PausemBt.Enabled:=true;
end;
end;procedure TForm1.TB_lChange(Sender: TObject);
var pos,vol:longint;
begin
TB_l.Max:=TB_vol.Position;
pos:=TB_l.Position;
waveoutgetvolume(0,@vol);
vol:=vol and $ffff0000 or (pos shl 8);
waveoutsetvolume(0,vol);
end;procedure TForm1.TB_rChange(Sender: TObject);
var pos,vol:longint;
begin
TB_r.Max:=TB_vol.Position;
pos:=TB_l.Position;
waveoutgetvolume(0,@vol);
vol:=vol and $0000ffff or (pos shl 24);
waveoutsetvolume(0,vol);
end;procedure TForm1.TB_volChange(Sender: TObject);
var pos,vol:longint;
begin
pos:=TB_vol.Position;
vol:=(pos shl 8) or (pos shl 24);
waveoutsetvolume(0,vol);
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if mediaplayer1.Mode=mpplaying then
begin
TB_mm.Position:=mediaplayer1.Position;
end
else
begin
if mediaplayer1.Mode=mpstopped then
stopmBtclick(self);
timer1.Enabled:=False;
end;
end;procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
case Button of
btplay:
begin
Caption:='Playing';
end;
btPause:
begin
caption:='Paused'
end;
btStop:
begin
Caption:='Stopped';
end;
btNext:
begin
caption:='Next';
end;
btPrev:
begin
caption:='Step';
end;
btBack:
begin
caption:='Back';
end;
btRecord:
begin
caption:='Record';
end;
btEject:
begin
Caption:='Eject';
end;
end;
end;
procedure TForm1.DomediaOpen;
beginend;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, MPlayer, ExtCtrls, StdCtrls; //按钮类型定义
type
TMPBtnType=(btplay,btpause,btStop,btNext,btPrev,btstep,btBack,btRecord,btEject);
TButtonSet=set of TMPBtnType;
//窗体类定义
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
TB_l: TTrackBar;
TB_r: TTrackBar;
TB_vol: TTrackBar;
TB_mm: TTrackBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
PlayMbt: TButton;
StopMbt: TButton;
PauseMbt: TButton;
OpenMbt: TButton;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure OpenMbtClick(Sender: TObject);
procedure StopMbtClick(Sender: TObject);
procedure PauseMbtClick(Sender: TObject);
procedure PlayMbtClick(Sender: TObject);
procedure TB_lChange(Sender: TObject);
procedure TB_rChange(Sender: TObject);
procedure TB_volChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
private
{ Private declarations }
public
{ Public declarations }
//音量控制中的全局变量
vol:longint;
//程序中用到的自定义函数
procedure DomediaOpen;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Close;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
waveoutgetvolume(0,@vol);
TB_l.Position:=hi(vol);//设置左声道音量
TB_r.Position:=hi(vol shr 16);//设置右声道音量
TB_vol.Position:=hi(vol) or hi(vol shr 16);
TB_l.Max:=TB_vol.Position;
TB_r.Max:=TB_vol.Position;
end;procedure TForm1.OpenMbtClick(Sender: TObject);
begin
if not OpenDialog1.Execute then
exit;
MediaPlayer1.FileName:=OpenDialog1.FileName;
DomediaOpen;
PlayMbt.Click;
end;procedure TForm1.StopMbtClick(Sender: TObject);
begin
tb_mm.Position:=0;
StopmBt.Enabled:=False;
PausemBt.Enabled:=False;
PlaymBt.Enabled:=True;
MediaPlayer1.Stop;
end;procedure TForm1.PauseMbtClick(Sender: TObject);
begin
MediaPlayer1.Pause;
PausemBt.Enabled:=not PausemBt.Enabled;
PlaymBt.Enabled:=not PlaymBt.Enabled;
end;procedure TForm1.PlayMbtClick(Sender: TObject);
begin
if mediaplayer1.Mode=mpPaused then
begin
PlaymBt.Enabled:=False;
StopmBt.Enabled:=True;
PausemBt.Enabled:=True;
MediaPlayer1.Resume;
Timer1.Enabled:=True;
end
else
begin
MediaPlayer1.Open;
TB_mm.Max:=mediaplayer1.Length;
domediaopen;
MediaPlayer1.Play;
timer1.Enabled:=true;
if MediaPlayer1.Mode<>mpplaying then
mediaplayer1.Play;
playmBt.Enabled:=False;
StopmBt.Enabled:=true;
PausemBt.Enabled:=true;
end;
end;procedure TForm1.TB_lChange(Sender: TObject);
var pos,vol:longint;
begin
TB_l.Max:=TB_vol.Position;
pos:=TB_l.Position;
waveoutgetvolume(0,@vol);
vol:=vol and $ffff0000 or (pos shl 8);
waveoutsetvolume(0,vol);
end;procedure TForm1.TB_rChange(Sender: TObject);
var pos,vol:longint;
begin
TB_r.Max:=TB_vol.Position;
pos:=TB_l.Position;
waveoutgetvolume(0,@vol);
vol:=vol and $0000ffff or (pos shl 24);
waveoutsetvolume(0,vol);
end;procedure TForm1.TB_volChange(Sender: TObject);
var pos,vol:longint;
begin
pos:=TB_vol.Position;
vol:=(pos shl 8) or (pos shl 24);
waveoutsetvolume(0,vol);
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if mediaplayer1.Mode=mpplaying then
begin
TB_mm.Position:=mediaplayer1.Position;
end
else
begin
if mediaplayer1.Mode=mpstopped then
stopmBtclick(self);
timer1.Enabled:=False;
end;
end;procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
case Button of
btplay:
begin
Caption:='Playing';
end;
btPause:
begin
caption:='Paused'
end;
btStop:
begin
Caption:='Stopped';
end;
btNext:
begin
caption:='Next';
end;
btPrev:
begin
caption:='Step';
end;
btBack:
begin
caption:='Back';
end;
btRecord:
begin
caption:='Record';
end;
btEject:
begin
Caption:='Eject';
end;
end;
end;
procedure TForm1.DomediaOpen;
beginend;end.
解决方案 »
- 如何禁止treeview控件的双击收缩功能?
- 急急急,在执行自定义类的时候出现问题!!请大侠赐教,完了马上结贴!!
- 会些ADO,有几个月经验,d7+sql,在上海试用期能提二千或二千五吗?
- 如何把OleContainer控件的内容保存到数据库里???
- WIN API资料????
- corba问题,为什么会出现"Class not found:Files\borland\vbroker\jre\bin\jre.exe"
- 用printer 如何画线打印?我画不出
- 鼠标消息,进入窗体
- 我真的不会
- 怎样控制stringgrid的每一行的颜色?
- 非常容易的问题!
- 急问:外部读入Sting类型的变量,想指定为动态生成的菜单项的onclick事件的名字,怎么办?
Unit1.pas(130):Undeclared identifier 'waveoutbetvolume'
Unit1.pas(132):Undeclared identifier 'waveoutbetvolume'
Combining signed and unsigned types-widened both operands