📄 ueplayer.pas
字号:
unit uEPlayer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, CheckLst, ExtCtrls, Buttons, Menus, MPlayer,
MMSystem, ActnList, uMP3Tag, uMPEGAFormat;
type
TfrmEPlayer = class(TForm)
SpeedBtn_Open: TSpeedButton;
SpeedBtn_Pause: TSpeedButton;
SpeedBtn_Up: TSpeedButton;
SpeedBtn_Play: TSpeedButton;
SpeedBtn_Stop: TSpeedButton;
SpeedBtn_Down: TSpeedButton;
Panel1: TPanel;
StatusBar1: TStatusBar;
MediaPlayer: TMediaPlayer;
pm_Right: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N37: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N25: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N11: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
OpenDlg_Files: TOpenDialog;
SaveDlg_Files: TSaveDialog;
TrackBar1: TTrackBar;
Timer_Play: TTimer;
TrackBar_Play: TTrackBar;
btn_ShowPlayList: TButton;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Label_Title: TLabel;
lbl_TotalTime: TLabel;
lbl_PlayTime: TLabel;
lbSoundLR: TLabel;
pgAudioInfo: TPageControl;
tab_MP3Header: TTabSheet;
lbl_Info: TLabel;
tab_ID3: TTabSheet;
lbl_Artist: TLabel;
lbl_Title: TLabel;
lbl_Album: TLabel;
lbl_Year: TLabel;
lbl_Genre: TLabel;
lbl_Comment: TLabel;
btn_WriteTag: TSpeedButton;
btn_RemoveTag: TSpeedButton;
edt_Artist: TEdit;
edt_Title: TEdit;
edt_Album: TEdit;
edt_Year: TEdit;
cbx_Genre: TComboBox;
edt_Comment: TEdit;
btn_ID3Tag: TButton;
procedure SpeedBtn_OpenClick(Sender: TObject);
procedure SpeedBtn_PauseClick(Sender: TObject);
procedure SpeedBtn_StopClick(Sender: TObject);
procedure SpeedBtn_UpClick(Sender: TObject);
procedure SpeedBtn_DownClick(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure CDROM1Click(Sender: TObject);
procedure CDROM2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer_PlayTimer(Sender: TObject);
procedure SpeedBtn_PlayClick(Sender: TObject);
procedure btn_ShowPlayListClick(Sender: TObject);
procedure TrackBar_PlayChange(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure btn_WriteTagClick(Sender: TObject);
procedure btn_RemoveTagClick(Sender: TObject);
procedure btn_ID3TagClick(Sender: TObject);
private
function ZeroFill(Size: Integer; s: string): string;
//procedure GetVolume(var wLeft, wRight: Word);
//procedure SetVolume(nLeft, nRight: Word);
{ Private declarations }
public
procedure SetAudioType(Value: Byte); // 设置声音的类型
procedure SetWaveLeft(Volume: Integer); // 设置声音为左声道(Integer 1~13)
procedure SetWaveRight(Volume: Integer); // 设置声音为右声道(Integer 1~13)
procedure SetWaveBoth(Volume: Integer); // 设置声音为双声道(Integer 1~13)
procedure ResetText;
//procedure SetWave;
{ Public declarations }
end;
var
frmEPlayer: TfrmEPlayer;
PositionChange: Boolean;
MP3FilePath: string;
implementation
uses uPlayList, uMovie, uAbout;
{$R *.dfm}
//==============================================================================
// 自定义函数
function TfrmEPlayer.ZeroFill(Size: Integer; s: string): string;
var
a,b: Integer;
t: string;
begin
SetLength(t, Size);
for a := 1 to Size do
t[a] := '0';
b := Size;
for a := Length(s) downto 1 do
begin
t[b] := s[a];
Dec(b);
end;
ZeroFill := t;
end;
//==============================================================================
//==============================================================================
procedure TfrmEPlayer.SetAudioType(Value: Byte);
var
SetAs: string;
begin
case Value of
1: begin
mciSendString('set all audio all on', nil, 0, Handle);
SetAs:='stereo';
lbSoundLR.Caption := '立体声';
end;
2: begin
mciSendString('set all audio all on', nil, 0, Handle);
SetAs := 'left' ;
lbSoundLR.Caption := '左声道';
end;
3: begin
mciSendString('set all audio all on', nil, 0, Handle);
SetAs := 'right';
lbSoundLR.Caption := '右声道';
end ;
4: begin
mciSendString('set all audio all on', nil, 0, Handle);
SetAs := 'average';
lbSoundLR.Caption := '平均';
end;
5: begin
lbSoundLR.Caption :='静音';
mciSendString('set all audio all off', nil, 0, Handle);
end;
end;
//RetStr := AudioSource(MediaAliasName, SetAs);
end;
//==============================================================================
procedure TfrmEPlayer.SetWaveLeft(Volume: Integer);
var
Wave: string;
begin
try
Wave := '$' + IntToHex(0, 4) + IntToHex(Volume*5000, 4);
MMSystem.waveOutSetVolume(0, StrToInt(Wave));
except
end;
end;
procedure TfrmEPlayer.SetWaveRight(Volume: Integer);
var
Wave: string;
begin
try
Wave := '$' + IntToHex(Volume*5000, 4) + IntToHex(0, 4);
MMSystem.waveOutSetVolume(0, StrToInt(Wave));
except
end;
end;
procedure TfrmEPlayer.SetWaveBoth(Volume: Integer);
var
Wave: string;
begin
try
Wave := '$' + IntToHex(Volume*5000, 4) + IntToHex(Volume*5000, 4);
MMSystem.waveOutSetVolume(0, StrToInt(Wave));
except
end;
end;
//==============================================================================
procedure TfrmEPlayer.SpeedBtn_OpenClick(Sender: TObject);
begin
frmPlayList.AddPlayFile;
end;
procedure TfrmEPlayer.SpeedBtn_PauseClick(Sender: TObject);
begin
if frmPlayList.ListBox_PlayFiles.ItemIndex < 0 then
MessageBox(Handle, '此时没有任何播放文件!', PChar('警告'), MB_OK+MB_ICONWARNING)
else
begin
case MediaPlayer.Mode of
MpPlaying:
begin
MediaPlayer.Pause;
SpeedBtn_Pause.Caption := '继续';
end;
MpPaused:
begin
MediaPlayer.Resume;
SpeedBtn_Pause.Caption := '暂停';
end;
end;
end;
end;
procedure TfrmEPlayer.SpeedBtn_StopClick(Sender: TObject);
begin
if frmPlayList.ListBox_PlayFiles.ItemIndex < 0 then
MessageBox(Handle, '此时没有任何播放文件!', PChar('警告'), MB_OK+MB_ICONWARNING)
else
begin
MediaPlayer.Stop;
MediaPlayer.Rewind;
TrackBar_Play.Position := 0;
end;
end;
procedure TfrmEPlayer.SpeedBtn_UpClick(Sender: TObject);
begin
if frmPlayList.ListBox_PlayFiles.ItemIndex = 0 then Exit;
if frmPlayList.ListBox_PlayFiles.ItemIndex < 0 then
MessageBox(Handle, '此时没有任何播放文件!', PChar('警告'), MB_OK+MB_ICONWARNING)
else
begin
MediaPlayer.Stop;
frmPlayList.ListBox_PlayFiles.ItemIndex := frmPlayList.ListBox_PlayFiles.ItemIndex - 1;
MediaPlayer.FileName := frmPlayList.ListBox_PlayFiles.Items[frmPlayList.ListBox_PlayFiles.ItemIndex];
MediaPlayer.Open;
MediaPlayer.Play;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -