Seite 1 von 1
musik immer wieder abspielen
Verfasst: 06.05.2006 21:49
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.
Verfasst: 06.05.2006 22:33
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()
Verfasst: 10.05.2006 22:35
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.
Verfasst: 11.05.2006 20:21
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.
Verfasst: 11.05.2006 20:37
von DoubleID
Du mußt die Musik schon auch laden.
Verfasst: 11.05.2006 20:53
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
Verfasst: 14.05.2006 11:22
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
Verfasst: 15.05.2006 12:43
von Svking
thx für die schnellen Antworten
hab das jetzt mit PlaySound(name,1)
gemacht und funzt perfect x)
--
Sv