Seite 1 von 1
LoadSound / PlaySound - Länge der Audiodatei
Verfasst: 19.03.2012 16:57
von tim
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
Re: LoadSound / PlaySound - Länge der Audiodatei
Verfasst: 19.03.2012 17:50
von - chris -
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
Re: LoadSound / PlaySound - Länge der Audiodatei
Verfasst: 19.03.2012 17:55
von Drago
Hier eine Version von Stargate:
Code: Alles auswählen
Procedure SoundStatus(Sound)
*DSB.IDirectSoundBuffer=PeekL(IsSound(Sound))
*DSB\GetCurrentPosition(@Status,0)
ProcedureReturn Status
EndProcedure
Gibt 0 zurück, wenn die Musik zuende ist....
Re: LoadSound / PlaySound - Länge der Audiodatei
Verfasst: 19.03.2012 17:59
von tim
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