Thema: Delphi Bass.dll - Player spinnt

Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Bass.dll - Player spinnt

  Alt 4. Aug 2006, 15:06
Also ich blicke bei deinen ganzen Vars nicht durch...Ständig im Timer etwas wie StrToInt(Edit1.Text) zu machen halte ich auch für etwas ungünstig. Hier mal der betreffende Auszug aus der Timer-Prozedur meines Players. Die Funktionsnamen sollten einigermaßen selbsterklärend sein oder als Pseudo-Code angesehen werden.
In StopAndFree wird der laufende Stream gestoppt/ausgefadet, GetNExtAudioFile liefert das nächste abzuspielende Stück und FadingInterval ist das vom User gewünschte Fading-Intervall.
Delphi-Quellcode:
if (Bass_ChannelBytes2Seconds(MainStream,Bass_ChannelGetLength(MainStream))
          - Bass_ChannelBytes2Seconds(MainStream,Bass_ChannelGetPosition(MainStream))
          <= (FadingInterval DIV 1000))
//also: if "fast am Ende"
        then
        begin
           // alten Stream stoppen und freigeben, vgl. Code oben
          StopAndFree;
          //Nächste Datei abspielen
          Play(GetNextAudioFile, FadingInterval)
        end;
Warum du in deiner Prozedur mehrere "Play" drinhast, ist mir nicht klar. Außerdem musst du ja nach dem Faden die Variablen p und p2 wieder so umhängen, dass das p2 zum p wird. Da halte ich es für einfacher, wenn man das Faden ganz der bass.dll überlässt, und beim Titelwechsel direkt den alten Stream "vergisst", während er sanft ausgeblendet wird.

Denselben Code musst du dann auch beim manuellen Titelwechsel ausführen.
  Mit Zitat antworten Zitat