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
-
- 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