Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi PlayFunktion immer nur beim 2. Anlauf (https://www.delphipraxis.net/10719-playfunktion-immer-nur-beim-2-anlauf.html)

DelphiUser7 23. Okt 2003 21:19


PlayFunktion immer nur beim 2. Anlauf
 
Sorry, dass ich schon wieder poste, aber ich werd mit dem Problem hier echt nicht fertig:
Bei jedem 2. Aufruf von mediaplayer1.play wird dieser Befehl nicht ausgeführt, es sei denn ich habe vorher mediaplayer1.Stop ausgeführt :arrow: bei mir: den Stop-Button gedrückt; dann führt er eigenartiger Weise bei jedem 'Anlauf' mediaplayer1.play aus;
Weiß einer von euch vielleicht, wie ich dieses Problem lösen kann?; ihr seid dann auch für einige Zeit von meinen Fragen 'befreit'!!! :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Hier der Code von meinem Öffnen-Button, da ich annehme, dass es damit irgendwie zusammenhängt, denn der Fehler tritt ja nicht nur beim Betätigen des Play-Buttons auf, sondern wirklich wie schon beschrieben bei jeder Art der Ausführung von mediaplayer1.play;
Delphi-Quellcode:
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
 with fileLoad1 do begin
  Filter := 'mp3-Files(*.mp3)|*.mp3|Wav-Files(*.wav)|*.wav|MIDI-Files(*.mid)|*.mid|Alle Audiodateien(*.mp3,*.wav,*.mid)|*.mp3;*.wav;*.mid';
 end;
  if fileLoad1.Execute then
 begin
  Ticks;
  mediaplayer1.FileName := FileLoad1.FileName;
  mylabel.Enabled := true;
  myLabel.Caption := mediaplayer1.FileName;
  mediaplayer1.Open;
  TrackPane;
  newplaylist := TStringList.Create;
  c := PlayListBox.Items.Count;
  newplaylist.Add(Mediaplayer1.FileName);
  PlayListBox.Items.Clear;
  PlayListBox.Items.AddObject('PlayList001', newplaylist);
  PlayL1.Items.Count;
  if PlayL1.Items.Count = -1 then
   begin
    ClearSel1.Enabled := false;
   end else begin
    ClearSel1.Enabled := true;
   end;
  if not PlayL1.Items.Count = -1 then
   begin
    newplaylist.clear;
    newplaylist.Add(Mediaplayer1.fileName);
   end;
  PlayL1.Clear;
  PlayL1.Items.Assign(newplaylist);
  PlayListBox.ItemIndex := 0;
  PlayL1.ItemIndex := 0;
  ButtonsEnable;
  mediaplayer1.Play;
  Stunden:=0; Minuten:=0; Sekunden:=0;
  Timer1.Enabled := True;
  TimeBar.Enabled := true;
 end else begin
  Exit;
 end;
end;
Man könnte jetzt natürlich annehmen, dass das standardmäßig ist; ist es aber nicht, weiß auch nicht was ich da falsch gemacht haben könnte; auf jeden Fall ging es auch mal anders...;

In diesem Sinne
DelphiUser7

Darty 24. Okt 2003 07:03

Re: PlayFunktion immer nur beim 2. Anlauf
 
Hallo Alex, benutze doch bitte die Delphi-Tags, dann kann man den Code auch besser lesen.

Alex_ITA01 24. Okt 2003 07:18

Re: PlayFunktion immer nur beim 2. Anlauf
 
gute werde ich machen habs aber noch nie probiert als werde ich es mal testen
Delphi-Quellcode:
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
with fileLoad1 do begin
Filter := 'mp3-Files(*.mp3)|*.mp3|Wav-Files(*.wav)|*.wav|MIDI-Files(*.mid)|*.mid|Alle Audiodateien(*.mp3,*.wav,*.mid)|*.mp3;*.wav;*.mid';
end;
if fileLoad1.Execute then
begin
Ticks;
//mediaplayer1.FileName := FileLoad1.FileName;
mylabel.Enabled := true;
myLabel.Caption := FileLoad1.FileName; <- 
//mediaplayer1.Open;
TrackPane;
newplaylist := TStringList.Create;
c := PlayListBox.Items.Count;
newplaylist.Add(FileLoad1.FileName); <- 
PlayListBox.Items.Clear;
PlayListBox.Items.AddObject('PlayList001', newplaylist);
PlayL1.Items.Count;
if PlayL1.Items.Count = -1 then
begin
ClearSel1.Enabled := false;
end else begin
ClearSel1.Enabled := true;
end;
if not PlayL1.Items.Count = -1 then
begin
newplaylist.clear;
newplaylist.Add(FileLoad1.FileName); <- 
end;
PlayL1.Clear;
PlayL1.Items.Assign(newplaylist);
PlayListBox.ItemIndex := 0;
PlayL1.ItemIndex := 0;
ButtonsEnable;
mediaplayer1.filename := FileLoad1.FileName; <- 
mediaplayer1.open; <- 
mediaplayer1.Play;
Stunden:=0; Minuten:=0; Sekunden:=0;
Timer1.Enabled := True;
TimeBar.Enabled := true;
end else begin
Exit;
end;
end;

Darty 24. Okt 2003 07:27

Re: PlayFunktion immer nur beim 2. Anlauf
 
Hättest Dein Posting auch editieren können :roll: Aber egal trotzdem danke :thuimb:

DelphiUser7 24. Okt 2003 10:05

Re: PlayFunktion immer nur beim 2. Anlauf
 
@ Alex_ITA01
Sorry, aber das hat leider nichts geholfen!; :roll: ;
Das kann doch nicht wahr sein, dass das jetzt nicht mehr so geht wie vorher! :x ;

DelphiUser7

Alex_ITA01 24. Okt 2003 10:21

Re: PlayFunktion immer nur beim 2. Anlauf
 
poste mal deine proceduren mit, vielleicht ist da der Fehler !!!
einfach mal mitschiken denn bei mir gehts
alex

DelphiUser7 24. Okt 2003 10:44

Re: PlayFunktion immer nur beim 2. Anlauf
 
Wieso sollte der Fehler in den Proceduren liegen, allenfalls doch bei OnCreate, oder?; der Fehler muss allgemeiner ausfallen, sonst wäre es ja nicht überall der Fall :-D ;
Trotzdem, wenn du glaubst, es hilft dir bzw. mir, poste ich dir mal ein paar Sources, an denen es liegen könnte; denn meine ganze Datei ist ca. 800 Zeilen lang, also viel zu lang, um gepostet zu werden :mrgreen: :mrgreen: ;
Play-Button
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var a: integer;
begin
  If Mediaplayer1.Mode = mpOpen then Mediaplayer1.Close;
  If PlayL1.Items.Count = 0 then begin
      Mediaplayer1.FileName := FileLoad1.FileName;
    end else begin
      Mediaplayer1.FileName := PlayL1.Items.Strings[PlayL1.ItemIndex];
   end;
   if Mediaplayer1.Mode = mpPlaying then begin
    Mediaplayer1.FileName := PlayL1.Items.Strings[PlayL1.ItemIndex];
    Stunden := 0; Minuten := 0; Sekunden := 0;
    TimePanelMain.Caption := '00:00:00';
    Mediaplayer1.StartPos := 0;
    mediaplayer1.Play;
   end;
    myLabel.Enabled := true;
    myLabel.Caption := Mediaplayer1.FileName;
    mediaplayer1.Open;
    Mediaplayer1.Play;
    Timer1.Enabled := True;
   if Mediaplayer1.Position := mediaplayer1.Length then begin
    mediaplayer1.Play; //...hier ist noch eine 'Baustelle' => s.o.: var 'a'
   end;
end;
, mehr fällt mir dazu jetzt nicht ein...doch, dieses OnCanClose-Ereignis von FileLoad1 (=> mein OpenDialog):
Delphi-Quellcode:
procedure TForm1.fileLoad1CanClose(Sender: TObject; var CanClose: Boolean);
begin
  try
    Mediaplayer1.FileName := FileLoad1.FileName;
    Mediaplayer1.Open;
  except
    Mediaplayer1.FileName := '';
    ShowMessage('KEINE GÜLTIGE DATEI');
    CanClose := false;
  end;
end;
DelphiUser7

Alex_ITA01 24. Okt 2003 10:59

Re: PlayFunktion immer nur beim 2. Anlauf
 
sag mal wieso schließt du im Play Button den Mediaplayer?
Delphi-Quellcode:
If Mediaplayer1.Mode = mpOpen then Mediaplayer1.Close;
der muss der open sein damit er auch spielen kann, denn dannach fragst du
Delphi-Quellcode:
if Mediaplayer1.Mode = mpPlaying then begin //<---- kann doch nicht reingehen wenn du vorher close machst
    Mediaplayer1.FileName := PlayL1.Items.Strings[PlayL1.ItemIndex];
    Stunden := 0; Minuten := 0; Sekunden := 0;
    TimePanelMain.Caption := '00:00:00';
    Mediaplayer1.StartPos := 0;
    mediaplayer1.Play;  
   end;

so auf anhieb würde ich mal sagen liegt der fehler da,
ich werde aber mal noch weitergucken ob was anderes falsch ist
alex

DelphiUser7 24. Okt 2003 17:26

Re: PlayFunktion immer nur beim 2. Anlauf
 
Hat sich nichts geändert; :cry: :cry:

DelphiUser7 24. Okt 2003 17:34

Re: PlayFunktion immer nur beim 2. Anlauf
 
Wie mir gerade aufgefallen ist, als ein Song zu Ende gespielt hatte, und als ich dann den nächsten gestartet habe, hat die PlayFunktion fehlerfrei funktioniert;

DelphiUser7


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz