• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

        運(yùn)用Mpegplayer控件編寫容易的mp3播放程序

        運(yùn)用Mpegplayer控件編寫容易的mp3播放程序

        更新時(shí)間:2022-04-27 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

        1.前言

        ---- mp3因其較高的壓縮率,較好的音質(zhì),成為越來(lái)越多的使用者的喜愛(ài),用自己編制的mp3播放器聽mp3音樂(lè)一定很有樂(lè)趣.我以下介紹一個(gè)用delphi編制的簡(jiǎn)單mp3播放器,因?yàn)閙p3音樂(lè)的解碼比較復(fù)雜,普通的程序員很難編制其解碼程序,但不要緊,我們可以用別人寫好的解碼程序來(lái)完成我們的程序.

        ---- 2.設(shè)計(jì)構(gòu)思

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

        ---- 介紹一下用到的參數(shù)

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

        ---- 新建一個(gè)from,放入6個(gè)label,5個(gè)button,1個(gè)checkbox,1個(gè)mpeg,1個(gè)time,1個(gè)trackbar,1個(gè)opendialog控件調(diào)整為適當(dāng)?shù)牟季?點(diǎn)擊opendialog1使*.mp3成為打開文件的后綴名.調(diào)整5個(gè)button,把其屬性name改為 openbutton,pausebutton,stopbutton,playbutton和exitbutton,并把caption改為播放,暫停,停止,打開,和退出. 使3個(gè)label的caption成為,壓縮位率,壓縮頻率,壓縮層次,調(diào)整其他3個(gè)label使label4對(duì)應(yīng)label1,label5對(duì)應(yīng)label2,label6對(duì)應(yīng)label3 caption為空,autosize為true,trackbar的tickstyle設(shè)為tsNone,chickbox的caption設(shè)為循環(huán)播放,timer的ontimer設(shè)為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.
        ---- 以上是一個(gè)簡(jiǎn)單的mp3播放器的例程,mpegplayer是一個(gè)強(qiáng)大的控件可以實(shí)現(xiàn)很多功能,如多曲播放,請(qǐng)大家自己研究把,愿大家都能做出很好的mp3播放器

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国产男女猛烈无遮档免费视频网站| 免费看又黄又爽又猛的视频软件| 一级免费黄色大片| 美女视频黄免费亚洲| 亚洲春色另类小说| 黄页视频在线观看免费| 久久er国产精品免费观看2| 亚洲va久久久噜噜噜久久天堂| 久久亚洲色WWW成人欧美| 日本无卡码免费一区二区三区| 精品国产亚洲第一区二区三区 | 久久久免费观成人影院| 毛片免费全部播放一级| 亚洲中文字幕无码中文字在线| 美女巨胸喷奶水视频www免费| 亚洲国产AV无码专区亚洲AV| 久久免费观看国产精品| 亚洲精品国自产拍在线观看| 亚洲一久久久久久久久| 国产精品久久久久影院免费| 成人免费视频一区二区| 亚洲成A人片777777| 亚洲AV成人无码网天堂| 亚洲一级毛片免观看| 国产精品无码免费专区午夜 | 精品久久久久久久免费人妻| 国产午夜亚洲精品不卡免下载| 中文字幕精品无码亚洲字 | 在线免费观看色片| 亚洲一区在线视频观看| 国产精品免费视频网站| 成人精品一区二区三区不卡免费看| 亚洲精品美女在线观看| 四虎永久在线精品免费观看地址| a在线观看免费网址大全| 亚洲中字慕日产2021| 亚洲精品无码99在线观看 | 男人j进女人p免费视频| 久久久久久亚洲精品成人| 四虎影视精品永久免费网站| 57pao一国产成永久免费|