六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用Mpegplayer控件編寫容易的mp3播放程序

[摘要]1.前言 ---- mp3因其較高的壓縮率,較好的音質,成為越來越多的使用者的喜愛,用自己編制的mp3播放器聽mp3音樂一定很有樂趣.我以下介紹一個用delphi編制的簡單mp3播放器,因為mp3音...
1.前言

---- mp3因其較高的壓縮率,較好的音質,成為越來越多的使用者的喜愛,用自己編制的mp3播放器聽mp3音樂一定很有樂趣.我以下介紹一個用delphi編制的簡單mp3播放器,因為mp3音樂的解碼比較復雜,普通的程序員很難編制其解碼程序,但不要緊,我們可以用別人寫好的解碼程序來完成我們的程序.

---- 2.設計構思

---- 我們使用mpegdll.dll來解碼(很多國產的mp3播放器都用它),mpegdll.dll的作者提供了它的delphi的控件,在各大delphi網站都有下載,或在作者的主頁http://www.ig.com.ua/wabbit/programs/workshop.html下載之后,我們安裝控件(必須delphi3.0以上),在component中選擇install component,安裝控件包中的mpegplayer.dcu,安裝完成后在控件欄里多出一個add-ons來,控件就在里面.

---- 介紹一下用到的參數

mpeg.streamname 所要播放的文件名
mpeg.length 文件程度
mpeg.bitrate 壓縮位率
mpeg.frequency 壓縮頻率
mpeg.layer 壓縮層次
mpeg.mode 壓縮模式
mpeg.pathtodll dll文件的路徑

---- 新建一個from,放入6個label,5個button,1個checkbox,1個mpeg,1個time,1個trackbar,1個opendialog控件調整為適當的布局,點擊opendialog1使*.mp3成為打開文件的后綴名.調整5個button,把其屬性name改為 openbutton,pausebutton,stopbutton,playbutton和exitbutton,并把caption改為播放,暫停,停止,打開,和退出. 使3個label的caption成為,壓縮位率,壓縮頻率,壓縮層次,調整其他3個label使label4對應label1,label5對應label2,label6對應label3 caption為空,autosize為true,trackbar的tickstyle設為tsNone,chickbox的caption設為循環播放,timer的ontimer設為timer1timer
---- 3.程序清單如下

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
ExtCtrls, MPEGPlayer,Gauges,
ComCtrls,Mask, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
openButton: TButton;
playButton: TButton;
pauseButton: TButton;
stopButton: TButton;
exitButton: TButton;
CheckBox1: TCheckBox;
TrackBar1: TTrackBar;
MPEG: TMPEGPlayer;
Timer1: TTimer;
OpenDialog1: TOpenDialog;
Label6: TLabel;
procedure exitButtonClick(Sender: TObject);
procedure openButtonClick(Sender: TObject);
procedure playButtonClick(Sender: TObject);
procedure pauseButtonClick(Sender: TObject);
procedure stopButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender:
TObject; var Action: TCloseAction);
private
{ Private declarations }
dontseek:boolean;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}


procedure TForm1.exitButtonClick(Sender: TObject);
begin
close;
end;

procedure TForm1.openButtonClick(Sender: TObject);
var s:string;
begin
if not opendialog1.execute then exit;
mpeg.autoplay:=false;
mpeg.streamname:=opendialog1.filename;
mpeg.open;
trackbar1.Max:=mpeg.length;
trackbar1.position:=0;
str(trackbar1.max,s);
playbutton.Enabled:=true;
stopbutton.enabled:=true;
pausebutton.Enabled:=true;
end;

procedure TForm1.playButtonClick(Sender: TObject);
var a,b,c:string;
begin
playbutton.Enabled:=false;
openbutton.Enabled:=false;
mpeg.Play;
str(mpeg.Bitrate,a);
label4.Caption:=a;
str(mpeg.Frequency,b);
label5.caption:=b;
str(mpeg.layer,c);
label6.caption:=c;
end;
procedure TForm1.pauseButtonClick(Sender: TObject);
begin
mpeg.paused:=not (mpeg.Paused);
end;

procedure TForm1.stopButtonClick(Sender: TObject);
begin
if mpeg.mode>2 then
begin
mpeg.stop;
mpeg.close;
end;
trackbar1.Position:=0;
openbutton.Enabled:=true;
playbutton.enabled:=false;
stopbutton.enabled:=false;
pausebutton.enabled:=false;
label4.Caption:='';
label5.Caption:='';
label6.Caption:='';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
mpeg.pathtodll:='';
//存放dll聞家的路徑本例程序和dll在同一路徑下
//dll一定要放在程序同一目錄,否則不能編譯
mpeg.init;
playbutton.Enabled :=false;
pausebutton.enabled:=false;
stopbutton.enabled:=false;
end;
procedure TForm1.FormClose(Sender:
TObject; var Action: TCloseAction);
begin
mpeg.deinit;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if not(dontseek) then
if (mpeg.mode=3)or((mpeg.mode=4))
then mpeg.CurrentPosition:=trackbar1.Position;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var a,b,c:string;
begin
if (mpeg.mode=3) then
begin
dontseek:=true;
trackbar1.Position:=mpeg.CurrentPosition;
dontseek:=false;

end;
if mpeg.PlayStopped then
begin
if checkbox1.Checked then
begin
mpeg.Play;
playbutton.Enabled:=false;
openbutton.Enabled:=false;
str(mpeg.Bitrate,a);
label4.Caption:=a;
str(mpeg.Frequency,b);
label5.caption:=b;
str(mpeg.layer,c);
label6.caption:=c;
end
else
begin
mpeg.close;
trackbar1.Position:=0;
openbutton.Enabled:=true;
playbutton.Enabled :=false;
pausebutton.enabled:=false;
stopbutton.enabled:=false;
label4.Caption:='';
label5.Caption:='';
label6.Caption:='';
end;
end;
end;
end.
---- 以上是一個簡單的mp3播放器的例程,mpegplayer是一個強大的控件可以實現很多功能,如多曲播放,請大家自己研究把,愿大家都能做出很好的mp3播放器


主站蜘蛛池模板: 日韩毛片在线看 | 天天狠天天透 | 一级毛片一级毛片一级毛片aaav | 亚洲精品中文字幕乱码三区一二 | 香蕉欧美成人精品a∨在线观看 | 中日韩美中文字幕 | 日本一区二区三区四区五区 | 亚洲欧洲精品久久 | 亚洲影院在线播放 | 日日夜夜天天干干 | 天天爽夜夜爽一区二区三区 | 日韩欧美激情 | 日本韩国高清 | 性亚洲| 特黄色片 | 天堂网www中文在线资源 | 人妖女天堂视频在线96 | 亚洲天堂男人网 | 中文字幕一区二区在线观看 | 日韩一级精品视频在线观看 | 亚洲精品在线观看视频 | 欧美在线日韩在线 | 齐天大性床战铁扇公主 | 婷婷激情五月综合 | 日韩一级片在线免费观看 | 日韩福利影院 | 日本三区四区免费高清不卡 | 亚洲一级大黄大色毛片 | 天天草天天干天天 | 日韩国产免费一区二区三区 | 天天躁夜夜躁狂狂躁综合 | 最近手机中文字幕1页 | 青草青青高清影院在线观看 | 日本五级床片全部硬硬 | 一级免费黄色大片 | 青草视频在线观看免费 | 日本中文字幕网 | 日韩中文一区宇都宫紫苑 | 日本中文在线 | 天天曰天天干 | 日韩最新中文字幕 |