Movie endlos abspielen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Tooom
Beiträge: 1
Registriert: 13.09.2004 15:00

Movie endlos abspielen

Beitrag von Tooom »

hallo erstmal, ich bin noch neu im forum und hab schon die erste Frage:
Ich hab jetzt meine erste Hintergrundmusik im midi-Format, die will ich natürlich endlos lange abspielen, aebr bei mir hört si e immer nach ein Mal auf. :(
Was muss ich machen, damit sie weiterspielt?
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Also entweder du benutzt die FMod.dll oder machst das so wie ich das mal gemacht hab, als ich bei "Auroria" (das mit Nils, fals sich jemand erinnert ^^) das selbe Problem hatte:

Code: Alles auswählen

Global StopThreads.l

Procedure repeatmovie(movie.l)
  Repeat
    UseMovie(movie)
    If MovieStatus() <= 0
      PlayMovie(movie,WindowID())
    EndIf
    Delay(100)
  Until StopThreads = 1
EndProcedure

CreateThread(@repeatmovie(),0)

...

StopThreads = 1
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Hi Tooom,

versuch es mal mit:

Code: Alles auswählen

MovieStatus()
steht auch in der Hilfe!

mfG
Basti

//edit: Mist, Deeem war schneller...
enjoy life... while you can!
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Deeem :o

UseMovie() und Thread in Kombination sind BÖÖÖÖSE!

Da sollte man wenigstens drauf hinweisen!
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Ich hoffe das hilft:

Code: Alles auswählen

;Beispielcode fuer unendliches spielen einer audiodatei
If InitMovie()
  If OpenWindow(0,100,100,100,100,#PB_Window_SystemMenu,"loop music files")
    movie$=OpenFileRequester("","","Musicfile | *.mid;*.midi;*.mp3;;*.ogg;*.wma",0)
    ;movie laden
    LoadMovie(0,movie$)
    ;movie abspielen
    PlayMovie(0,WindowID())
    Repeat
      ;falls "das movie" gestoppt ist (bzw. auch wenn es vorbei ist vorbei ist)...
      If MovieStatus()=0
        ;"das movie" wieder aspielen
        PlayMovie(0,WindowID())
      EndIf
      Delay(20)
    Until WindowEvent()=#PB_Event_CloseWindow
  EndIf
Else
  MessageRequester("Error","InitMovie()")
EndIf
Sollte eigentlich funzen! (Allerdings habe ich es nicht mit Midi ausprobiert)

mfG
Basti

//edit: Hab's getestet, funzt mit *.midi (war mir vorher nicht sicher)
enjoy life... while you can!
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Lars hat geschrieben:Deeem :o

UseMovie() und Thread in Kombination sind BÖÖÖÖSE!

Da sollte man wenigstens drauf hinweisen!
Hm, stimmt is mir garnicht so aufgefallen, liegt aber vielleicht auch daran das ich nur ein Movie bei dem Spiel geladen hab ^^
Also, sorry für meinen scheiß Code.
Wieso hat MovieStatus() eigentlich keinen Parameter? son müll ...
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Die ganze UseXXXX() Sache ist Müll, nur um das mal zu bemerken :)
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Lars hat geschrieben:Die ganze UseXXXX() Sache ist Müll, nur um das mal zu bemerken :)
Meinst du man sollte anstatt

Code: Alles auswählen

UseWindow()
das:

Code: Alles auswählen

WindowID=OpenWindow(...)
...
benutzen? Warum ist das mit UseXXXX() denn Müll... ist das zu langsam?

mfG
Basti
enjoy life... while you can!
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

ptI hat geschrieben:Warum ist das mit UseXXXX() denn Müll?
Weil es
1.) unheitlich ist. Bleiben wir beim Beispiel der Movie Lib: PlayMovie
erwartet einen #MovieID Parameter, sow eit ich jetzt gesehen habe alle
anderen Befehle nicht.

2.) in Threads nicht zu gebrauchen ist, wie obiges Beispiel zeigt.

Außerdem ist es in meinen Augen unsinnig, erst mit einem extra Befehl zu
spezifizieren, mit welchen Objekt jetzt etwas geschehen soll - imho ist
eine Angabe als Parameter viel sinnvoller.

ptI hat geschrieben:Meinst du man sollte anstatt [c]UseWindow() WindowID=OpenWindow()[/c] benutzen?
Nein, das meinte ich nicht. Ich bezog mich damit auf die Befehle, die ein
vorher in einem extra Befehl spezifiziertes Objekt beziehen.

Das was du meinst, ist auch ein wenig unsinnig, aber nicht weiter
schlimm; ein XXXXID(#ID) Befehl wäre sinnvoller, der ImageID()
Befehl erwartet ein vorhergehendes UseImage(), das aber auch schon die
gesuchte ID zurück gibt, von daher ist ImageID() in vielen Fällen unnötig.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Antworten