musik immer wieder abspielen

Anfängerfragen zum Programmieren mit PureBasic.
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

musik immer wieder abspielen

Beitrag von Svking »

Hallo,
kann mir jemand erklären, wie ich die PlayMovie() mehrmals hintereinander abspielen kann?
also wenn das Lied fertig ist, dass es dann neu anfängt?

Ich brauche nämlich eine Hintergrundmusik zu meinem Spiel und das ist doof, wenn die plötzlich aus ist.
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Starte es erneut, wen MovieStatus()=0.
Das funktioniert aber nicht immer, sicher ist

Code: Alles auswählen

If MovieStatus()=OldState
PlayMovie(#Mivie,WindowID)
endif
OldState=MovieStatus()
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
DoubleID
Beiträge: 23
Registriert: 02.05.2006 16:14

Beitrag von DoubleID »

Wenn es kleine Musikloops sind kannst du sie auch per PlaySound ausgeben.

PlaySound(#SoundID,1)

Der Parameter 1 steht für das automatische Wiederholen.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Ich hab son ähnliches Problem, allerdings will ich dann noch mit NextSelectedFileName() arbeiten. Hier mal mein Codeschnipsel:

Code: Alles auswählen

Case #ButtonImage_0    
         PlayMovie(0,#Window_0)
           If MovieStatus()=Oldstate
             file$=NextSelectedFileName()
             PlayMovie(0,#Window_0)
           EndIf
Ich arbeite mit MultiToggle beim OpenFileRequester() und er spielt nur das eine Movie und hört dann auf.
Benutzeravatar
DoubleID
Beiträge: 23
Registriert: 02.05.2006 16:14

Beitrag von DoubleID »

Du mußt die Musik schon auch laden.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Muss ich die bei jedem NextSelectedFileName neu laden?
Mein Code sihet jetzt so aus, geht aber auch nich:

Code: Alles auswählen

Case #ButtonImage_0    
         If MovieStatus()=-1
           ResumeMovie()
         Else    
           LoadMovie(0,file$)
           PlayMovie(0,#Window_0)
         EndIf  
         If MovieStatus()=0
           file$=NextSelectedFileName()
           LoadMovie(0,file$)
           PlayMovie(0,#Window_0)
         EndIf
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Hab noch nen Vorschlag:

Damit musst du nich mal mehr in der Schleife abfragen, ob die Musik fertig ist:

Code: Alles auswählen

Dim MovieLoaded.b(10) ; Eigentlich 11 Plätze, aber egal...
Global MovieLoaded

Procedure CheckMusic()
  Repeat
    Delay(1000)
    
    For number = 0 To 10
      If MovieLoaded(number)
        
        UseMovie(number)
        If MovieStatus() = 0
          PlayMovie(number,ScreenID())
        EndIf
        
      EndIf
    Next
    
  ForEver
EndProcedure

MuzID = CreateThread(@CheckMusic(),0)
ThreadPriority(MuzID,5)


Procedure SetBackgroundMusic(number,file.s)
  ; Darf erst aufgerufen werden, WENN ein Screen OFFEN ist!!!
  If file ; Laden...
    MovieLoaded(number) = 0
    LoadMovie(number,"SND\Music\"+file.s+".mp3")
    PlayMovie(number,ScreenID())
    MovieLoaded(number) = 1
  Else ; Freigeben...
    MovieLoaded(number) = 0
    FreeMovie(number)
  EndIf
EndProcedure
Bild
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

thx für die schnellen Antworten

hab das jetzt mit PlaySound(name,1)
gemacht und funzt perfect x)


--
Sv
Das Ende meines Lebens:
If leben = 0
End
Endif
Antworten