|
|
MP3 lejátszása Delphi-s programból
|
|
Példaprogram letöltése
8829 bájt
|
Manapság szinte nincs olyan felhasználó, akinek ne lenne MP3 formátumban tárolt fájl a gyűjteményében, és ne lenne legalább egy MP3 lejátszó program telepítve a gépére. MP3 fájl lejátszása Delphi-ből sem lehetetlen feladat, erre mutatunk be most egy egyszerű példát.
Mindenekelőtt meg kell nyitnunk azt az eszközt, ami képes az MP3 fájlok lejátszására, ha van egyáltalán ilyen telepítve a gépünkre. Ehhez az mciSendCommand függvényt használjuk. A függvénynek szüksége lesz többek között egy TMCI_Open_Parms típusú paraméterre. Ennek van egy lpstrElementName mezője, melyben meg kell adnunk a megnyitni kívánt MP3 fájl nevét az elérési útvonallal együtt.
procedure TForm1.OpenDevice;
var
OpenParm: TMCI_Open_Parms;
Error: cardinal;
begin
FillChar(OpenParm, SizeOf(TMCI_Open_Parms), 0);
OpenParm.dwCallback := 0;
OpenParm.lpstrDeviceType := '';
OpenParm.lpstrElementName := PChar(Edit1.Text);
OpenParm.dwCallback := 0;
Meghívjuk az mciSendCommand függvényt, melynek paraméterei sorban a következők:
- IDDevice. az eszköz azonosítója, amit most nem kell használnunk, mivel még csak most nyitjuk meg azt;
- Msg: a végrehajtani kívánt művelet azonosítója, jelen esetben mci_Open;
- Command: a végrehajtani kívánt művelet flag-jei;
- Param: a művelet paraméterei;
Ha a függvény visszatérési értéke nem 0, akkor hiba történt. Ha sikerült megnyitni az eszközt, akkor az OpenParm változó wDeviceID mezőjéből kiolvassuk az eszköz azonosítóját.
Error := mciSendCommand(0, mci_Open, MCI_OPEN_ELEMENT, Longint(@OpenParm));
if Error <> 0 then
ShowMessage('Az eszközt nem sikerült megnyitni!')
else
FDeviceID := OpenParm.wDeviceID;
end;
Ha sikeresen megnyitottuk a fájlt, akkor akár le is játszhatjuk azt. Ezt a példaprogramban a PlayMP3 eljárásban tesszük meg. A TMCI_Play_Parms típusú változóban megadhatnánk a lejátszás paramétereit, például, hogy melyik számokat kell lejátszani. Mivel itt csak egy fájl van, ezért ezt nem használjuk. Az mciSendCommand függvénnyel egy mci_Play üzenetet küldünk annak az eszköznek, melynek azonosítóját az FDeviceID változóban tároltunk el.
procedure TForm1.PlayMP3;
var
PlayParm: TMCI_Play_Parms;
begin
mciSendCommand(FDeviceID, mci_Play, 0, Longint(@PlayParm));
end;
A lejátszást természetesen meg is tudjuk állítani. Ehhez csak egy mci_Stop üzenetet kell küldeni a lejátszó eszköznek. Ha ezután újból egy mci_Play üzenetet küldünk, akkor az aktuális pozíciótól folytatódik a lejátszás.
procedure TForm1.StopMP3;
var
GenParm: TMCI_Generic_Parms;
begin
mciSendCommand(FDeviceID, mci_Stop, 0, Longint(@GenParm));
end;
A fájl lejátszása után le is kell zárnunk azt, amit az mci_Close üzenet elküldésével tehetünk meg.
procedure TForm1.CloseDevice;
var
GenParm: TMCI_Generic_Parms;
Error: cardinal;
begin
if FDeviceID <> 0 then
begin
GenParm.dwCallback := 0;
Error := mciSendCommand(FDeviceID, mci_Close, 0, Longint(@GenParm));
if Error = 0 then FDeviceID := 0;
end;
end;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 314. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|