Seite 1 von 2
PlayMovie und MovieAudio - Unterdrückung
Verfasst: 01.08.2007 03:12
von STARGÅTE
Tachchen,
wenn das Problem wieder nur ein 3.3 Problem ist, SRY - vorab ^^
Ich habe folgendes Problem:
Ich habe eine MP3-Datei als Movie geladen
Sound: MG-Schüsse, ca. 5s lang
Wenn nun in meinem Spiel
ein Panzer schießt berechne ich vorher (jenachdem woher der Schuss kommt) Volume und Balance und führe folgenden Code aus
Bei
einem Panzer der schießt funzt das auch super, schießen jedoch mehrere Panzer (Schussfolge < 5s) dann sollten sich die Schüsse überlagern, da jedoch beide Schüsse die selbe MovieNr haben, "unterdrückt" das zweite aufrufen von PlayMovie(1,0) das erste welches aber noch nicht fertig ist.
Kann man dieses Problem nur lösen indem man das selbe Movie mehr mals mit unterschiedlichen Nr läd, und dann beim Abspielen vorher beachtet welche MovieNr frei ist ?
Code: Alles auswählen
For n = 1 to 10 : LoadMovie(n, ...) : Next n
Nr = 0
Repeat
Nr+1 : UseMovie(Nr)
Until MovieStatus()=0 Or Nr > 9
PlayMovie(Nr,0)
MovieAudio(Volume, Balance)
Verfasst: 01.08.2007 03:33
von Fluid Byte
Hmmm, noch nie drüber Gedanken gemacht aber jetzt wo du es erwähnst hab ich es mal getestet. Das Ergebniss ist klar. Ein mehrfaches Aufrufen von PlayMovie() beendet automatisch den Sound der gerade auf dieser ID abgespielt wird. Ich habe es ebenfalls mit der normalen Sound Bibliothek gestestet, selbes Ergebniss. Ich befürchte fast das wenn man ein und denselben Sound mehrfach ohne Unterbrechung abspielen will muss man ihn genau so oft mit einer anderen ID vorladen.
Verfasst: 01.08.2007 09:13
von dige
In PB4 kann per MovieAudio(#Movie, Lautstaerke, Balance) jedes separat
angesteuert werden.
Da musst Du ggf. auf MCI-Schnittstelle ausweichen...
Verfasst: 01.08.2007 11:25
von STARGÅTE
naja das kann ich ja mit
auch machen, aber es geht ja darum das ich Movies mit der
gleichen #Movie Nummer zur fast selben Zeit mit unterschiedlicher Balance und Lautstaerke abspielen kann
Verfasst: 01.08.2007 13:23
von Kaeru Gaman
das problem wäre bei wav oder ogg und PlaySound das selbe.
ich würde in dem fall denselben sound 4mal oder so laden,
dann kann man bis zu 4 gleichzeitig abspielen.
Verfasst: 01.08.2007 15:38
von STARGÅTE
hmmm, warum hat PlayMovie() oder PlaySound() nicht sowas:
Code: Alles auswählen
Sound1 = PlayMovie(1,0)
Sound2 = PlayMovie(1,0)
Sound3 = PlayMovie(1,0)
Also ein einmaligen Rückgarbewert, wie schon so viele Sachen in PB,
sodass man dann einfach bei MovieAudio die Einmalige ID angibt :
Vllt ist das ja eine Idee für ein weiteres Update

Verfasst: 01.08.2007 16:15
von bobobo
aha
Code: Alles auswählen
;Definitionen
mein 1. Sohn heisst Hans
mein 1. Sohn heisst Paul
mein 1. Sohn heisst Otto
;der Sohn ist natürlich strunzblöd (kein Wunder bei dem Vater) und kann sich nur den letzten Namen merken
ein paar dumme Anweisungen
Code: Alles auswählen
Paul komm mal her.
Und nun : Hans, komm mal her (Hans kommt nicht weil er schon da ist)
Und dann :Paul geht nach links während Hans gleichzeitig in den Keller geht und Bier holt und Otto zum Bäcker für ein Stück Brot.
das ergibt dann eventuell ein Stück Brot aber sicher kein Bier.
--
jede einzeln anzusprechenden Ressource braucht halt ne eindeutige ID
Verfasst: 01.08.2007 16:58
von PureLust
Verfasst: 01.08.2007 17:44
von STARGÅTE
Soll also heißen, ich muss mehrmals das MP3 laden, damit ich es mehrfach anwenden kann.
Nagut ...
Verfasst: 01.08.2007 18:08
von Fluid Byte
Was eigentlich Schwachsinn ist da nur unnötig Speicher gefressen wird. In BlitzBasic wird das ganze über Soundkanäle (basierend auf FMOD) gelöst. Da kannst den einmal geladenden Sound beliebig oft abspielen und sie überlagern sich auch. In PB haben wir ja noch nicht mal IsSoundPlaying(). Da muss sich noch einiges tun damit es für Spieleentwickler einfacher wird.