// Wenn man einen Track einer CD auswählt und an den TMediaPlayer übergibt,
// beginnt dieser trotzdem immer mit "Track01.cda". Man kann aber die Nummer
// des Tracks ableiten und die Startposition selbst setzen.


// Getestet mit D4 unter XP

var 
  track, zahl: integer; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Mediaplayer1.autoOpen := false; 
  Mediaplayer1.autoEnable := true; 
  Mediaplayer1.VisibleButtons := [btPlay, btPause, btStop, btNext, btPrev]; 
end; 
 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  if Mediaplayer1.mode in [mpStopped, mpPlaying, 
    mpSeeking, mpPaused, mpOpen] 
    then begin 
    Mediaplayer1.stop; 
    Mediaplayer1.close; 
  end; 
end;

 
// Titel wählen 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if opendialog1.execute then begin 
    track := strtoint(copy(opendialog1.filename, 
      pos('Track', opendialog1.filename) + 5, 2)); 
    if Mediaplayer1.mode = mpPlaying then Mediaplayer1.stop; 
    Mediaplayer1.DeviceType := dtAutoSelect; 
    Mediaplayer1.filename := opendialog1.filename; 
    Mediaplayer1.open; 
    zahl := Mediaplayer1.Tracks; 
    Mediaplayer1.Startpos := Mediaplayer1.TrackPosition[track]; 
    label1.caption := 'Titel ' + inttostr(track); 
  end; 
end;

 
// nächster bzw. vorheriger Titel 
 
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; 
  var DoDefault: Boolean); 
  procedure nextprev; 
  begin 
    if button = btNext then begin 
      inc(track); 
      if track > zahl then track := 1; 
    end else begin 
      dec(track); 
      if track < 1 then track := zahl; 
    end; 
  end; 
begin 
  if button in [btNext, btPrev] then begin 
    DoDefault := false; 
    Mediaplayer1.stop; 
    nextprev; 
    Mediaplayer1.Startpos := Mediaplayer1.TrackPosition[track]; 
    label1.caption := 'Titel ' + inttostr(track); 
  end; 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke