Tror du har brug for alle slags funktioner i din mediaplayer. Her kommer et hav af tips! Nogle af dem besvare din spørgsmål!
Du kan lave en progress der grafisk hviser hvor langt du er kommet med sangen:
Aflæse Position...
Sæt en følgende 5 komponenter på din form: TMediaPlayer, TTimer, TProgressBar, TOpenDialog og en TButton.
Skriv følgende i din TButtons OnClick property.
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.Filename := OpenDialog1.FileName;
MediaPlayer1.Open;
ProgressBar1.Max := MediaPlayer1.Length;
ProgressBar1.Position := 0;
end;
end;
og dette i din TTimers OnTimer property:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MediaPlayer1.Mode = mpPlaying then
ProgressBar1.Position := MediaPlayer1.Position;
end;
Sæt din TTimers "Interval" på omkrng 30.
Og sæt eventuelt din TProgressBars "Smooth" til True.
Kompile og test!
Tryk på din Button, find en lydfil fra din harddisk!
Tryk derefter på MediaPlayerens "Play" knap og du vil nu afspille lydfilen. Hvad du også vil se at du kan følge positionen (altså hvor langt du er henne i sangen) på din ProgressBar!
Indstil Position.
Du kan også gøre det modsat. I stedet for at aflæse en fils position, kan du indsætte en position og derved spole frem og til bage i lydfilen. I følgende eksempel bruger jeg en TScrollBar til at spole med. Jeg har derfor udskiftet TPrograssBar'en med en TScrollBar. Koden til det ser således ud:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.Filename := OpenDialog1.FileName;
MediaPlayer1.Open;
ScrollBar1.Max := MediaPlayer1.Length;
ScrollBar1.Position := 0;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MediaPlayer1.Mode = mpPlaying then
ScrollBar1.Position := MediaPlayer1.Position;
end;
Det samme som før, men TProgessBaren er blevet skiftet ud med TScrollBaren.
For at spole så skriv følgende i din ScrollBar's OnScroll property:
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
if Length(MediaPlayer1.Filename) > 0 then
begin
MediaPlayer1.Position := ScrollBar1.Position;
MediaPlayer1.Play;
end;
end;
Prøv nu at kompile igen og test. Mens lydfilen afspilles kan du spole frem og tilbage i lydfilen med din ScrollBar!
Her kan du kontrollerer lydstyrken:
Kan lave volumen om i en mediaplayer
MediaPlayer har ikke en indbygget volume kontrol men du kan bruge følgende kode til en trackbar. HUSK at sætte trackbarens maxsize (tror jeg nok det hedder) til (i dette tilfælde) 19.
sæt MMSystem til userlisten
Sæt track...'s max til 19...
case TrackBar1.Position of
1: waveOutSetVolume(0, $FFFFFFFF);
2: waveOutSetVolume(0, $FFF0FFF0);
3: waveOutSetVolume(0, $FFF0FFF0);
4: waveOutSetVolume(0, $FF00FF00);
5: waveOutSetVolume(0, $F000F000);
6: waveOutSetVolume(0, $E000E000);
7: waveOutSetVolume(0, $D000D000);
8: waveOutSetVolume(0, $C000C000);
9: waveOutSetVolume(0, $B000B000);
10: waveOutSetVolume(0, $A000A000);
11: waveOutSetVolume(0, $90009000);
12: waveOutSetVolume(0, $70007000);
13: waveOutSetVolume(0, $60006000);
14: waveOutSetVolume(0, $50005000);
15: waveOutSetVolume(0, $30003000);
16: waveOutSetVolume(0, $40004000);
17: waveOutSetVolume(0, $20002000);
18: waveOutSetVolume(0, $10001000);
19: waveOutSetVolume(0, $00000000);
Gentager det afspillende nummer i en evighed:
If MediaPlayer1.Position = MediaPlayer1.TrackLength[0] then
begin
MediaPlayer1.Stop;
MediaPlayer1.Play;
end;