<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

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

      使用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播放器


      日韩精品一区二区三区高清