Prosty Odtwarzacz mp3
pawel8115
<font color="red">
Witam piszę tutaj pierwszy raz.Teraz zademonstruje wam jak można szybko zrobić swój własny odtwarzacz muzyki, za pomocą podstawowych komponentów
</span></p>
Jestem początkującym programistą i myślę że niektórym taki kod może się przydać.
1.Tworzymy nową aplikację .
2.Na formę wstawiamy 3 TSpeedButtony , TScrollBara , z zakładki Dialogs wstawiamy TopenDialog, wstawiamy jeszcze TMediaPlayer (można też wstawić TStatuss bara).
3.Teraz w:
a)speed buttonie 1 w caption wpisujemy otwórz. i ustawiamy Flat na True
b)speed buttonie 2 w caption wpisujemy Play i ustawiamy Flat na True
c)speed buttonie 3 w caption wpisujemy Pause i ustawiamy Flat na True
d)scroll baru ustawiamy Max na 127.
4.Wstawiamy kod:(dwa razy klikamy na speed buttona
A) Speed button 1:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then begin // otwiera okno wyboru
MediaPlayer1.DeviceType := dtAutoSelect; // auto. odtwarzanie
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
ScrollBar1.Max := MediaPlayer1.Length;
ScrollBar1.Position := MediaPlayer1.Position;
MediaPlayer1.Play;
end;
end;
B) Speed button 2
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
MediaPlayer1.Play
end;
C) Speed button 3
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
MediaPlayer1.Pause
end;
cały kod wygląda tak
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, MPlayer,MMSystem, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
StatusBar1: TStatusBar;
ScrollBar1: TScrollBar;
MediaPlayer1: TMediaPlayer;
OpenDialog1: TOpenDialog;
procedure ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Zmiana głośności dźwięku typu Wave
procedure SetWavVolume(Lewy,Prawy:Byte);
begin
waveOutSetVolume(WAVE_MAPPER, Integer((Lewy shl 24) or (Prawy shl 8 )));
end;
// Zmiana głośności muzyki z płyt CD
procedure SetCDVolume(Lewy,Prawy:Byte);
begin
auxSetVolume(0, Integer((Lewy shl 24) or (Prawy shl 8 )));
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
// Zmiana głośności dla normalnych plików dźwiękowych (WAV lub Mp3)
SetWavVolume(ScrollBar1.Position,ScrollBar1.Position);
// Zmiana głośności dla muzyki odtwarzanej z płyt CD
SetCDVolume(ScrollBar1.Position,ScrollBar1.Position);
end;
procedure TForm1.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
ScrollBar1.Max := MediaPlayer1.Length;
MediaPlayer1.Position := ScrollBar1.Position;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
OpenDialog1.Execute; // otwiera okno wyboru
if OpenDialog1.FileName <> '' then
Begin
MediaPlayer1.DeviceType := dtAutoSelect; // auto. odtwarzanie
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
ScrollBar1.Max := MediaPlayer1.Length;
ScrollBar1.Position := MediaPlayer1.Position;
MediaPlayer1.Play;
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
MediaPlayer1.Play
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
MediaPlayer1.Pause
end;
end.
W razie jakichkolwiek pytań pytań proszę o kontakt na gg: 4946688
Proszę też o wasze opinie
Ja również napisałem sobie własny odtwarzacz używając komponentów Mediaplayer listbox itd. Odtwarzacz posiada playlistę jak i opcje repear,playy all, random.
Mam tylko problem z przerobieniem ilości klatek na czas (min:sek) dla tego zostawiłem klatki. Co do repeat, play all i random, repeat samo będzie odtwarzało 1 utwór, play all będzie leciało od wybranego do ostatniego utworu, random + play all będzie skakał po liście i robił sam pereat. Repeat + play all chyba wiadomo ;) :P
to teraz dodam tylko link do programu i mam nadzieje że się spodoba
http://w373.wrzuta.pl/plik/56YmfaVfVPY/odtwarzacz
Zrobiłem tutaj swój odtwarzacz na innym kodzie. Myślę że się spodoba :) http://www.sendspace.pl/file/414d462341bc7cfbdea0622
fatalbomb masz rację w 100%, pisząc ten gotowiec myślałem o jego prostocie oraz użyciu podstawowych komponentów , ma on wiele wad ale dla początkujących to powinno wystarczyć.
Komponentu TMediaPlayer używałem dość długo, aczkolwiek on ma sporo wad (błędne podawanie czasu dla MP3 ze zmiennym bitrate, ociężałość, spotkałem też się z dziwnym wywalaniem się programu przy niektórych plikach MP3). Zaletą tego rozwiązania jest szybkość powstawania aplikacji (przy szybkich palcach w 3 minuty), tym niemniej na dłuższą metę radziłbym przesiąść się na bibliotekę BASS czy coś podobnego.
Potrzebuję kodu na listę odtwarzania muzyki. Z góry dziękuje.
OpenDialog1.Execute; // otwiera okno wyboru
if OpenDialog1.FileName <> '' then
Optymalnie bardziej by było napisać
if OpenDialog1.Execute niż sprawdzać FileName;)
To nie jest na silniku WMP . Komponent TMedia Player ma swój silnik
PS.Poprawiony tylko dźwięk trzeba ustawić(ustawienie jest w kodzie źródłowym) polecam skopiowanie kodu źródłowego a potem dostosowanie go do swoich potrzeb
To jest na silniku WMP???
PS. Cały kod bardzo się różni od tamtych części :D