Forrás delphi
E tanulság az, hogy hozzon létre mp3-Játékos (játékos) alapján bass.dll könyvtárban.
Ebben a projektben azt próbálja elmondani, hogyan kell csatlakozni bass.dll könyvtárban hozzon létre egy egyszerű lejátszási listát. csatlakoztassa gombok (lejátszás, szünet, leállítás) irányíthatja a lejátszást.
Fuss Delphi, és hozzon létre egy új alkalmazás: File-> New-> VCL Forms Application - Delphi.
A Név tulajdonát formájában levelet Form_player és Caption -> mp3player
Mentse el a készülék (egység1) nevével mp3, és a projekt (projekt1) nevű mp3player.
A projekt mappába, és tegye a fájlokat bass.dll bass.pas. Fájlokat lehet letölteni a hivatalos honlapon, vagy www.un4seen.com
Továbbá azt hozni alkatrészek formájában, ahogy az ábra mutatja.
A legfelső eleme rendszer TPaintBox lapok. akkor megjeleníti vizualizációs hatásokat. Azonnal állítsa Név tulajdonság -> PB1 erre az összetevőre.
Ezután tegyük TScrollBar további komponensei lapok. akkor megmutatja az aktuális helyzetét a pályán játszik.
Az alábbiakban a bal és jobb ScrollBar hely TLabel komponensek Standart lapon. Bal Label1 mutatja az aktuális lejátszási idő és a jobb Label2 közben egy számot játszik le.
A képaláírás -nak Label1 és Label2 írtam Time.
Még alacsonyabb helyre három gomb TButton származó Standart fülre, és állítsa be a tulajdonságoknak megfelelően Caption - lejátszás, szünet, leállítás.
Ezután helyezzük a két TTrackBar Win32 komponens a füleket és fölöttük két TLabel. Az első jele Trackbar1 kötet, a második Trackbar2 jelentkezzen Balance.
Még alacsonyabb helyre 10 TTrackBar alkatrészek az equalizer. Orietation ingatlan meghatározott trVertical. Alattuk keresztül TLabel alkatrészek jel frekvencia (80 Hz, 170 Hz, 310 Hz, 600 Hz, 1 kHz, 3 kHz, 6 kHz, 10 kHz, 12 kHz, 14 kHz), a frekvencia értékek aztán megváltozott, ahogy tetszik.
Az equalizer helyet két TButton a gombot a Caption tulajdonság a gomb levelet Nyílt dalt. és tiszta, ill.
Az gombok elhelyezése TListBox komponenst Standart lapok.
További dobja az alak a komponens TOpenDialog Párbeszédpanelek lapok és TTimer összetevője Rendszer lapok. Interval tulajdonságát Timer1 beállított értéke 30 és Option> ofAllowMultiSelect -nak OpenDialog1 komponens meghatározott Igaz.
A maradék tulajdonságait vizuális elemek később kerülnek részletezésre.
Kezdjük kódot.
A szakasz használ felírni basszus, meg kell csatlakoztatni Bass.dll könyvtárban.
Ezután megtanulják, hogyan kell letölteni dalokat lejátszási listát.
Ahhoz, hogy ezt elérjük, hogy egy változót szakaszt Var
i: integer; // száma éppen lejátszott dal lejátszási lista
és a változó
fájlnév: string; // fájlnév
Ezután kattintson duplán a gombra Megnyitás dalt. és írd be az alábbi kódot:
eljárás TForm_player.Button1Click (Sender: TObject);
var j: integer;
kezdődik
OpenDialog1.Title: = 'Open Files';
OpenDialog1.Filter: = 'mp3 | * .mp3'; // szűrő fájlok
// ellenőrizze, ha a lejátszási lista nem üres, akkor megjegyezni a számot az aktuális dal
// egyébként meg a zeneszám 0 (első pozíció a lejátszási listában)
ha listbox1.Count<>0, akkor i: = ListBox1.ItemIndex mást i: = 0;
// fájl megnyitása párbeszédablak
ha nem OpenDialog1.Execute majd kilép;
kezdődik
j: = 0 OpenDialog1.Files.Count-1 do
kezdődik
// töltse PlayListet
ListBox1.Items.Add (OpenDialog1.Files.Strings [j]);
végén;
végén;
// emlékszem a nevére az aktuális dalt a listában fájl
Fájlnév: = ListBox1.Items.Strings [i];
// Válassza ki a dalt a listában
ListBox1.ItemIndex: = i;
végén;
Mentés és vizsgálati munka lejátszási listát.
Készítsen OnClick eljárások a Play gombot, szünet, leállítás.
Adj kattintsunk a Play gombot, és írjuk be a következő kódot:
eljárás TForm_player.Button1Click (Sender: TObject);
kezdődik
// Ellenőrizze, hogy a szaporodás már útközben
ha mode = játszanak majd kilép;
// Indítsa el a lejátszást folyamat
lejátszó;
végén;
Hasonlóképpen, a Pause és a Stop gomb.
eljárás TForm_player.Button2Click (Sender: TObject);
kezdődik
// Ellenőrizze, hogy a játék
ha mode = játszanak majd
kezdődik
BASS_ChannelPause (Channel); // megálló lejátszás - Szünet
mód: = szünetel; // beállított lejátszási mód -> szünet
végén;
végén;
[/ Quoye]
Megáll
eljárás TForm_player.Button3Click (Sender: TObject);
kezdődik
// Ellenőrizze, hogy a játék
ha mode = játszanak majd
kezdődik
BASS_ChannelStop (Channel); // megálló reprodukció - stop
mód: = stop; // beállított lejátszási mód -> Leállítás
végén;
végén;
A részben Var nyilvánítja még két változót
Csatorna: DWORD; // csatorna leíró
Mode: TPlayerMode; // PlayMode
var
Form_player: TForm_player;
i: integer; // száma a dal éppen játszott a lejátszási listában
fájlnév: string; // fájlnév
Channel. DWORD; // csatornát leíró
Mode: TPlayerMode; // PlayMode
A Típus be
TPlayerMode = (Stop, Play, szüneteltetve);
és hozzon létre egy új eljárást játékos (fájl lejátszása);
Ehhez írjon a privát rész:
És szakasz után
végrehajtás
levelet eljárás kód:
eljárás TForm_Player.Player;
kezdődik
// ellenőrizze, ha nem törik
ha mód<>szüneteltetett ezután kezdődik
// ellenőrzi, hogy van egy letölthető fájl a lejátszási listából
// ha a fájl nem létezik, akkor hagyja
ha nem FileExists (fájlnév), majd kezdődik ShowMessage (A fájl nem létezik '); exit; end;
// megáll, és engedje el a playback csatorna
BASS_ChannelStop (Channel); BASS_StreamFree (Channel);
// próbálja meg letölteni egy fájlt, és megkapja a csatorna leíró
Channel: = BASS_StreamCreateFile (FALSE, PChar (fájlnév), 0, 0, 0 vagy BASS_UNICODE);
// ha a csatorna leíró = 0 (valamilyen okból a fájlt nem lehet betölteni)
// egy hibaüzenetet ad vissza, és kilépés
ha Channel = 0, akkor kezdődik ShowMessage ( 'terhelés hiba fájl'); exit; end;
végén;
// BASS_ChannelPlay (Channel, False) A csapat próbál játszani a fájlt,
// ha ez nem lehetséges, akkor egy hibaüzenet
ha nem BASS_ChannelPlay (Channel, False), majd
kezdődik ShowMessage ( 'fájl lejátszási hiba'); exit; end;
// rendel fejezetek lejátszása fájlnév
Form_Player.Caption: = ExtractFileName (fájlnév);
// Set PlayMode - játék
mód: = játszani;
végén;
Az esemény OnCreate formája az írás:
eljárás TForm_player.FormCreate (Sender: TObject);
kezdődik
// érvényesítés betöltött BASS.DLL
if (HIWORD (BASS_GetVersion) <> BASSVERSION), majd
kezdődik
MessageBox (0, 'nem megfelelő verziója BASS.DLL', nulla, MB_ICONERROR);
Halt;
végén;
// inicializálása Audio - alapértelmezett, 44100Hz, sztereó, 16 bit
ha nem BASS_Init (-1, 44100, 0, Fogantyú, nulla), akkor
kezdődik
MessageBox (0, 'Hiba inicializálása audio', nulla, MB_ICONERROR);
Halt;
végén;
végén;
Az esemény OnClose írásmódú:
eljárás TForm_player.FormClose (Sender: TObject; var Action: TCloseAction);
kezdődik
// Release tárgyak zárás előtt
Bass_Stop (); // leállíthatja a lejátszást
BASS_StreamFree (csatorna); // engedje hangcsatorna
Bass_Free; // Szabad a felhasznált források Bass
végén;