[ Pobierz całość w formacie PDF ]
.Klasa TMediaPlayer nie posiada niestety wbudowanej mo¿liwoœciodtwarzania muzyki w sposób ci¹g³y.Do osi¹gniêcia efektu pêtli mo¿na jednakwykorzystaæ zdarzenie OnNotify.Po pierwsze trzeba nakazaæ komponentowiMediaPlayer, aby informowa³ o zachodz¹cych zdarzeniach:MediaPlayer.Notify:= True;Nastêpnie trzeba utworzyæ funkcjê obs³uguj¹c¹ zdarzenie OnNotify.We wnêtrzutej funkcji musi znaleŸæ siê kod, który zrestartuje odtwarzanie pliku popomyœlnym jego zakoñczeniu.Funkcja ta mog³aby mieæ nastêpuj¹c¹ postaæ:procedure TForm1.MediaPlayerNotify(Sender : TObject);beginwith MediaPlayer doif NotifyValue = nvSuccessful then beginPosition:= 0;Play;end;end;Na pocz¹tku nastêpuje sprawdzenie, czy w³aœciwoœæ NotifyValue zawiera wartoœænvSuccessful.Je¿eli tak, pozycja pliku zostaje ustawiona na wartoœæ 0, po czymwywo³ywana jest funkcja Play, w efekcie czego plik jest ponownie odtwarzany odpocz¹tku.Zadanie okaza³o siê proste do wykonania, niemniej jest tu kilkakwestii, których istnienia warto byæ œwiadomym.Po pierwsze, w³aœciwoœæ Position jest ustawiana na wartoœæ 0, co powodujeprzesuniêcie wskaŸnika po³o¿enia w pliku na jego pocz¹tek.Operacja ta jestzbêdna, je¿eli w³aœciwoœæ AutoRewind jest ustawiona na wartoœæ True.Po drugie,trzeba zdawaæ sobie sprawê, ¿e istnieje kilka akcji komponentu MediaPlayer,które mog¹ wywo³aæ zdarzenie OnNotify z wartoœci¹ nvSuccessful w³aœciwoœciNotifyValue.Przyk³adowo, Ÿród³em wartoœci nvSuccessful mo¿e byæ prosta komenda Stop,wykonana bezb³êdnie.Byæ mo¿e bêdziesz musia³ okreœliæ stan urz¹dzenia, abyupewniæ siê, ¿e zdarzenie OnNotify zosta³o wywo³ane w wyniku osi¹gniêcia koñcapliku, a nie efekcie zaistnienia innej operacji komponentu MediaPlayer.Audio CDOdtwarzanie dŸwiêku Audio CD za pomoc¹ komponentu TMediaPlayer jest wzglêdnieproste.Wystarczy zmieniæ wartoœæ w³aœciwoœci DeviceType na dtCDAudio i klikn¹æna przycisku Play (lub wywo³aæ metodê o tej nazwie).Najtrudniejszym do zrozumienia aspektem programowania urz¹dzeñ Audio CD s¹ró¿ne formaty czasu.Do zebrania informacji o danej œcie¿ce lub ustawieniubie¿¹cej pozycji na okreœlonej œcie¿ce nale¿y skorzystaæ z czasu TMSF (czas,minuty, sekundy, ramki).Wartoœci minut, sekund lub ramek bêd¹ ustawianewzglêdem numeru œcie¿ki.Poni¿szy przyk³adowy kod formatuje ³añcuch informuj¹cyo bie¿¹cej pozycji wewn¹trz bie¿¹cej œcie¿ki:varTime: Integer;Track: Integer;Minutes: Integer;Seconds: Integer;TimeStr: string;beginMediaPlayer.TimeFormat:= tfTMSF;Time:= MediaPlayer.Position;Track:=mci_TMSF_Track(Time);Minutes:=mci_TMSF_Minute(Time);Seconds:= mci_TMSF_Second(Time);TimeStr:=Format('Track Time: %2.2d:%2.2d',[Minutes,Seconds]);Label1.Caption := 'Track: '+IntToStr(Track);Label2.Caption := TimeStr;end;Na pocz¹tku w³aœciwoœæ TimeFormat jest ustawiana na wartoœæ tfTMSF, co dajepewnoœæ poprawnego formatu czasu.Nastêpnie bie¿¹ca pozycja jest zapisywana wzmiennej Time.W kolejnych liniach kodu makropolecenia konwersji czasu(nale¿¹ce do Windows) – mci_TMSF_Track, mci_TMSF_Minute, – wydobywaj¹ z tejzmiennej ró¿ne wartoœci czasowe (nr œcie¿ki, minuty i sekundy).Makra tezawarte s¹ w module MMSystem, dlatego aby móc z nich skorzystaæ, trzeba dodaæten modu³ do listy uses.Po wyodrêbnieniu indywidualnych jednostek budowanyjest ³añcuch, który pos³u¿y do wyœwietlenia czasu œcie¿ki.Na samym koñcuœcie¿ka i czas zostaj¹ wyœwietlone przez dwa komponenty typu Label.Do zebrania ogólnej informacji o p³ycie CD s³u¿y czas w formacie MSF (minuty,sekundy, ramki).Przyk³adowo, format ten móg³by pos³u¿yæ do okreœlenia bie¿¹cejpozycji na p³ycie wzglêdem jej pocz¹tku lub do ustawienia bie¿¹cej pozycji np.na 30 minucie p³yty niezale¿nie od tego, na której œcie¿ce wypadnie to miejsce.Poni¿szy przyk³ad pokazuje w jaki sposób uzyskaæ i wyœwietliæ bie¿¹c¹ pozycjêna p³ycie (licz¹ca w minutach i sekundach):varTime: Integer;Minutes: Integer;Seconds: Integer;TimeStr: string;beginMediaPlayer.TimeFormat:= tfMSF;Time:= MediaPlayer.Position;Minutes:=mci_MSF_Minute(Time);Seconds:=mci_MSF_Second(Time);TimeStr:=Format('Total time: %2.2d:%2.2d',[Minutes, Seconds]);Label3
[ Pobierz całość w formacie PDF ]
Darmowy hosting zapewnia PRV.PL