LoadSound / PlaySound - Länge der Audiodatei

Anfängerfragen zum Programmieren mit PureBasic.
tim
Beiträge: 21
Registriert: 05.12.2010 20:49

LoadSound / PlaySound - Länge der Audiodatei

Beitrag 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
- chris -
Beiträge: 195
Registriert: 24.08.2005 19:52
Wohnort: Stadtallendorf

Re: LoadSound / PlaySound - Länge der Audiodatei

Beitrag 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

PB v5.72 x86/x64
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

Beitrag 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....
tim
Beiträge: 21
Registriert: 05.12.2010 20:49

Re: LoadSound / PlaySound - Länge der Audiodatei

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