Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi LoopFunktion (https://www.delphipraxis.net/35615-loopfunktion.html)

alcaeus 10. Dez 2004 14:11

Re: LoopFunktion
 
Ni Nils_13,

was kommt denn bei dieser Abfrage raus?
Delphi-Quellcode:
if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then
du solltest mal ueberlegen anstatt immer nur Copy'n'Waste zu betreiben :roll:

Greetz
alcaeus

[add]wieder schneller :tongue:[/add]

Alex_ITA01 10. Dez 2004 14:12

Re: LoopFunktion
 
der linken Seite kann ja auch nichts zugewiesen werden. Das ist doch eine Funktion die dir ein bestimmten Wert zurück gibt, und mit diesem Wert kannst du herausfinden, ob Sound abgespielt wird,gestoppt wurde oder Pause ist...

Nils_13 10. Dez 2004 14:13

Re: LoopFunktion
 
wenn ich noch then hinzufüge läufts auch nicht :gruebel:
Delphi-Quellcode:
if BASS_ChannelIsActive(Channel) then BASS_ACTIVE_PLAYING;

Alex_ITA01 10. Dez 2004 14:15

Re: LoopFunktion
 
Auszug aus Bass.pas (VERSION2.0):

Delphi-Quellcode:
  // BASS_ChannelIsActive return values
  BASS_ACTIVE_STOPPED = 0;
  BASS_ACTIVE_PLAYING = 1;
  BASS_ACTIVE_STALLED = 2;
  BASS_ACTIVE_PAUSED = 3;

function BASS_ChannelIsActive(handle: DWORD): DWORD; stdcall;external 'bass.dll' name 'BASS_ChannelIsActive';
Meine Überprüfung läuft so:

Delphi-Quellcode:
 if BASS_ChannelIsActive(channel) = BASS_ACTIVE_STOPPED then
  begin
    //MACH WAS
    Exit;
  end;
MFG Alex

PS: Falsche Bass.pas???

alcaeus 10. Dez 2004 14:15

Re: LoopFunktion
 
:roll: :wall:
Sag mal, verstehst du wie eine if-Abfrage funktioniert?
Deine Funktion heisst "BASS_ChannelIsActive(Channel)"
Du willst pruefen ob das Ergebnis "BASS_ACTIVE_PLAYING" ist
Also:
Delphi-Quellcode:
if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then
  ShowMessage('Playing');
Greetz
alcaeus

gmarts 10. Dez 2004 14:26

Re: LoopFunktion
 
Hi Nils
Ein interessanter Ansatz für deine Probleme findet sich hier: Klick :-D (Wink mit Zaunpfahl)

MfG GM

Nils_13 10. Dez 2004 14:38

Re: LoopFunktion
 
Hier habt ihr den Code:
Delphi-Quellcode:
procedure TFormPlayer.Image1Click(Sender: TObject);
const BASS_ACTIVE_STOPPED = 0;
       BASS_ACTIVE_PLAYING = 1;
       BASS_ACTIVE_STALLED = 2;
       BASS_ACTIVE_PAUSED = 3;
begin
 if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then
  BASS_Start();
  BASS_Start();
  BASS_ChannelPause(channel);
  position := 0;
  op1.Title := 'Open Files';
    if not op1.Execute then exit;
    Channel := BASS_StreamCreateFile(FALSE, PChar(op1.FileName), 0, 0, 0);
    BASS_StreamPlay(Channel, False, 0);
    Image1.Enabled:= true;
    p1.Visible:= false;
end;

alcaeus 10. Dez 2004 14:45

Re: LoopFunktion
 
Also...dieser Code
Delphi-Quellcode:
if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then
sagt dir ob gerade was abgespielt wird.
Du musst den Code in einer Schleife durchprobieren bzw. in einem Timer-Event. Sobalt die Bedingung nicht mehr zutrifft, musst du das Lied nochmals starten.
Ueberleg doch einfach mal wie du was programmieren musst, anstatt dir von uns den Code vorkauen zu lassen...

Greetz
alcaeus

Nils_13 10. Dez 2004 14:49

Re: LoopFunktion
 
:| :gruebel: Ich hab einen Timer mit dem Interval '1', in dem Timer steht:
Delphi-Quellcode:
if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then BASS_StreamPlay(Channel, False, 0);
Es läuft nicht :pale:

Nils_13 10. Dez 2004 14:59

Re: LoopFunktion
 
In dem RenderTimer hab ichs eingebaut:
Delphi-Quellcode:
procedure TFormPlayer.TimerRenderTimer(Sender: TObject);
 var FFTFata : TFFTData; WaveData : TWaveData;
begin
if BASS_ChannelIsActive(Channel) = BASS_ACTIVE_PLAYING then BASS_StreamPlay(Channel, False, 0);
TimerRender.Interval:= Spin.Value;

...

end;
Wieso kam vorher ein doppelpost :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Seite 2 von 3     12 3      

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