Hallo,
gibt es einen Weg die Länge einer Audiodatei (z.B. in Millisekunden) zu ermitteln?
Alternativ:
Kann ich feststellen wann PlaySound eine Datei fertig abgespielt hat?
Grund:
...ich will mehrere Audiodateien hintereinander laufen lassen.
Die Nächste soll natürlich erst abspielen wenn die davor fertig ist.
Gruß
Tim
			
			
									
									
						LoadSound / PlaySound - Länge der Audiodatei
Re: LoadSound / PlaySound - Länge der Audiodatei
Hiermit kann festgestellt werden, ob die Datei noch abgespielt wird:
			
			
									
									Code: Alles auswählen
EnableExplicit
Define FileName$, sound.i, s.i
If InitSound() = 0
  End
EndIf
Procedure IsSoundPlaying(Sound.i)
  Protected Address.i, *DSB.IDirectSoundBuffer, Status.i
  Address = IsSound(Sound)
  If Address = 0
    ProcedureReturn 0
  EndIf
  *DSB.IDirectSoundBuffer = PeekI(Address)
  *DSB\GetStatus(@Status)
  If Status = 1 Or Status = 5
    ProcedureReturn 1
  EndIf
  ProcedureReturn 0
EndProcedure
FileName$ = "sound01.wav"
sound = LoadSound(#PB_Any, FileName$)
If sound
  If IsSound(sound)
    PlaySound(sound)
    Repeat
      s = IsSoundPlaying(sound)
      Delay(10)
    Until s = 0
    FreeSound(sound)
  EndIf
EndIf
PB v5.72 x86/x64
Windows 10 Pro 64bit
						Windows 10 Pro 64bit
- 
				Drago
 - Beiträge: 148
 - Registriert: 02.02.2010 18:22
 - Computerausstattung: Win XP SP3, AMD Sempron (MMX) 1.2 GHz, 512 MB, Nvidia GeForce FX 5200, 128 MB, DirectX 9.0c
 - Wohnort: Westerwald
 
Re: LoadSound / PlaySound - Länge der Audiodatei
Hier eine Version von Stargate:
Gibt 0 zurück, wenn die Musik zuende ist....
			
			
									
									
						Code: Alles auswählen
 Procedure SoundStatus(Sound)   
  *DSB.IDirectSoundBuffer=PeekL(IsSound(Sound))
  *DSB\GetCurrentPosition(@Status,0)
  ProcedureReturn Status
EndProcedure Re: LoadSound / PlaySound - Länge der Audiodatei
Hi,
danke für die Hilfe. Hab in der Zwischenzeit auch noch etwas
weitergesucht und herausgefunden dass es mit "PlayMovie" auch
geht.
Darin ist eine Funktion "MovieStatus" schon enthalten.
Aber wer sucht schon nach "Movie" wenn er "Sound" abspielen will...
Gruß & Danke
Tim
			
			
									
									
						danke für die Hilfe. Hab in der Zwischenzeit auch noch etwas
weitergesucht und herausgefunden dass es mit "PlayMovie" auch
geht.
Darin ist eine Funktion "MovieStatus" schon enthalten.
Aber wer sucht schon nach "Movie" wenn er "Sound" abspielen will...
Gruß & Danke
Tim