Rozdział 8 

 [ Powrót ]

W tym rozdziale zajmiemy się sylwetką komponentu MediaPlayer. 

Zaczniemy od komponentu MediaPlayer. Komponent ten znajduje się na palecie System.  Służy on do odtwarzania muzyki w formacie *.mid i *.wav oraz filmów w formacie *.avi. Gdy umieścicie ten komponent na formularzu zobaczycie kilka przycisków służących do sterowania. Niekiedy zajdzie potrzeba ukrycia komponentu MediaPlayer. Wtedy należy wartości Visible przypisać wartość False. Zróbmy teraz programik, który będzie odrywał dźwięk po naciśnięciu przycisku:

  1. Umieść na formularzu komponent MediaPlayer i zmień jego właściwość na False. 
  2. Umieść na formularzu przycisk i w procedurze OnClick wpisz następujący tekst:

procedure TForm1.GrajClick(Sender: TObject);
begin

MediaPlayer1.FileName:='muzyczka.wav'; //przypisanie komponentowi nazwy utworu
MediaPlayer1.Open;  //otwarcie pliku
MediaPlayer1.Wait:=True;  //otwarcie pliku w sposób synchroniczny
MediaPlayer1.Play;   //odtwarzanie pliku muzycznego
MediaPlayer1.FileName:='muzyczka1.wav';  
MediaPlayer1.Open;
MediaPlayer1.Wait:=True;
MediaPlayer1.Play;
end;

Objaśnienie: Zwróć uwagę na przypisanie wartości Wait komponentowi. Jest to niezbędne gdy chcemy odtwarzać jeden utwór za drugim. Gdyby wartość Wait miała wartość False to odtwarzanie kolejnego utworu nastąpiłoby zaraz po zakończeniu odtwarzania pierwszego (przerwa pomiędzy utworami trwałaby kilka milisekund). W przypadku muzyki z rozszerzeniem *.mid kod byłby taki sam z tymże nazwy utworów byłyby inne. 

Niekiedy zachodzi konieczność odtworzenia pliku z rozszerzeniem *.wav w tle grającej muzyki. 

  1. W powyższym kodzie zmień właściwość FileName na muzykę z rozszerzeniem *.mid.
  2. Zaznacz przycisk pojedynczym kliknięciem; w Inspektorze Obiektów kliknij na zakładkę Events 
  3. Odszukaj pole OnMouseMove i kliknij na nie. Najedź kursorem obok tego pola - kursor powinien zmienić się na tekstowy. Kliknij dwukrotnie.
  4. Treść procedury OnMouseOver uzupełnij następująco:

procedure TForm1.GrajMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
PlaySound('C:\Moje dokumenty\click.wav',0,SND_FILENAME);
end;  

   5.  Do listy modułów (uses) dodaj słowo MmSystem.

Uruchom program.

Zwróć uwagę na parametr SND_FILENAME. Używaj tego parametru gdy chcesz odtworzyć plik znajdujący się na dysku. Możliwe jest użycie innego parametru np. 

PlaySound('MailBeep',0,SND_ALIAS);

Powoduje to odtworzenie pliku MailBeep o ile takowy jest przypisany w systemie Windows.

Zajmiemy się teraz odtwarzaniem filmów *.avi. Napiszemy program, który ma za zadanie wyświetlać filmy właśnie z rozszerzeniem *.avi. 

  1. Umieść na formularzu komponent MediaPlayer i zmień jego nazwę na Player
  2. Umieść na formularzu komponent Panel  (na palecie Standart), usuń tekst z właściwości Caption. 
  3. Umieść na formularzu przycisk Button
  4. Umieść na formularzu komponent OpenDialog (na palecie Dialogs), zmień jego nazwę na OpenDialog.
  5. Procedure OnClick przycisku uzupełnij następuąco:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenDialog.Execute then //wywołanie okna "Otwórz"

Player.FileName:=OpenDialog.FileName;  
PLayer.Open;


Player.Display:=Panel1;  //Panel1 będzie wyświetlaczem filmu
Player.DisplayRect:=Panel1.ClientRect;  //Dostosowanie rozmiarów filmu do rozmiaru Panelu

end;

Objaśnienie: Na początku następuje wyświetlenie okna dialogowego "Otwórz". Później nazwa jaką wybrałem zostaje przydzielona komponentowi Player, następuje otwarcie pliku (zauważ, że przyciski komponentu MediaPlayer stały się aktywne). Jeżeli chcesz obejrzeć film na panelu to musisz dokonać przypisania: Player.Display:=Panel1; Wtedy jednak film zostanie obcięty do rozmiarów panelu. Żeby temu zapobiec musisz dokonać przypisania: Player.DisplayRect:=Panel1.ClientRect

 [ Powrót ]