Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Überprüfen, ob nächste Datei Audio/Video ist und abspielen

  Alt 1. Okt 2006, 19:08
Hi,

ich möchte überprüfen, ob die nächste Datei der Playlist eine Video oder Audiodatei ist und entsprechend abspielen. Was muss ich bei folgendem Code ändern, damit es funktioniert (der Übergang zwischen Audio und Video funktioniert nicht, es liegt an den markierten Zeile, aber ich weiß nicht, wie ich es beseitigen könnte). Der Fehler: Video und Audio haben beide verschiedene Trackbar, wenn ich ein Video abspiele und die nächste Datei eine Audiodatei ist und ich dann verlange, dass die UNVERÄNDERTE AUDIOTRACKBAR auf dem Maximumwert steht, dann kann das nicht funktionieren. Ich weiß halt nicht, wie ich das umgehen könnte.
Delphi-Quellcode:
procedure TfrmMain.tListTimer(Sender: TObject);
begin
  if lbList.Items.Count <= 1 then
    exit;
  if (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.mp3') or
     (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.wav') or
     (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.wma') or
     (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.aif') or
     (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.aiff') or
     (LowerCase(ExtractFileExt(fFiles[playindex+1].Dateiname)) = '.ogg') then
  begin
    if not tb1.Max - tb1.Position = tb1.Max then
      Next_Audio;
    if BASS_ChannelIsActive(chan) = BASS_ACTIVE_PLAYING then
    begin
      if lbList.Items.Count > 0 then
      begin
        tb1.Max := GetBASSInfo('GetLength');
--> if tb1.Position = tb1.Max then <--
        begin
          Next_Audio;
        end;
      end;
    end;
  end else
  begin
--> if frmVideo.tb1.Position = frmVideo.tb1.Max then <--
    begin
      Next_Video;
    end;
  end;
end;

procedure TfrmMain.Next_Audio;
var i : Integer;
begin
  if rbSeq.Checked then
  begin
    PlayFile(playindex);
    with fFiles[playindex] do
    begin
      s := Artist + ' - ' + Titel + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']';
      lLauftext.Text := s;
    end;
    pindex := playindex;
  end else
  if rbRandom.Checked then
  begin
    randomize;
    BASS_ChannelStop(chan);
    for i := 0 to lbList.Items.Count - 1 do
    begin
      PlayIndex := Random(i);
      tb1.Max := GetBASSInfo('GetLength');
      PlayFile(playindex);
      with fFiles[playindex] do
      begin
        s := Artist + ' - ' + Titel + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']';
        lLauftext.Text := s;
      end;
      pindex := playindex;
    end;
  end else
  if rbLoop.Checked then
  begin
    BASS_ChannelStop(chan);
    tb1.Position := 0;
    PlayFile(pindex);
  end;
  Application.Title := s;
  lbList.ItemIndex := pindex;
end;

procedure TfrmMain.Next_Video;
begin
  spath := fFiles[playindex].Dateiname;
  frmVideo.Play;
  pause := True;
end;
  Mit Zitat antworten Zitat