|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 29.04.2007, 12:24 Titel: DirectSound: Sekundäre Soundbuffer = Channel? |
|
|
Um in DSound einen Sound abzuspielen, kann man ja eine Datei laden, sagen wir mal eine Wave, deren Inhalt in einen (sekundären) Soundbuffer kopieren und den dann abspieln. So hätte man für jeden Sound einen eigenen Soundbuffer. Wenn man jetzt allerdings den gleichen Sound mehrmals parallel abspielen will (man hat z.B. EINEN Kanonenschuss-Sound und mehrere Kanonen, die ggf. gleichzeitig bzw. zeitlich versetzt feuern könnten), funktioniert das ja so nicht mehr. Wenn man da einen Soundbuffer abspielen will, der bereits abgespielt wird, fängt er einfach wieder von vorne an.
Jetzt gibt es natürlich diverse Libs, z.B. FMOD, wo man beim Abspielen von nem Sound eine Channel-Nr. bekommt und wo man auch den GLEICHEN Sound MEHRMALS parallel abspielen kann. Wie wird sowas nun implementiert? Ich dachte mir, dass man einfach pro Channel einen Soundbuffer anlegt, also dass diese Channels nichts anderes als sekundäre Soundbuffer sind. Wenn man jetzt einen Sound abspielen will, sucht man sich einen Soundbuffer (sprich nen Channel), in dem noch kein Sound abgespielt ist, lockt den Buffer, kopiert den Inhalt des Sounds hinein und spielt den dann ab? Und wenn der gleiche Sound von nem Soundbuffer bereits abgespielt wird, nimmt man einfach einen anderen freien? Wird das wirklich so gemacht? _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 29.04.2007, 14:44 Titel: |
|
|
Hm.
Also IMHO kann man das auch so machen, das man Soundbuffer clont, d.h. man hat die Wave Datei nur ein einziges mal, aber mehrere lese Zeiger.
So hat jeder Bufferklon eine eigene Position aber immer den selben Sound. Das spart viel Platz. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 29.04.2007, 14:49 Titel: |
|
|
Meinst du mit DSound dasselbe wie DirectX Audio?
Mit letzterem sollte es meines Wissens ohne Probleme möglich sein, ein und denselben Soundbuffer mehrmals abzuspielen. Ich glaube, DirectSound und DirectMusic wurden ja unter Audio zusammengefasst, daher kanns sein, dass es nur an der Version liegt, die du verwendest. Wenn dus in etwa so wies in JLI1/2 (weiß nicht, wies in JLI3 ist) machst, sollte das gehen.
Möglich wäre auch, dass irgendwelche Parameter falsch gesetzt sind. Aber vllt. kannst du ja mal den relevanten Code zeigen _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 29.04.2007, 16:55 Titel: |
|
|
Zitat: |
Also IMHO kann man das auch so machen, das man Soundbuffer clont, d.h. man hat die Wave Datei nur ein einziges mal, aber mehrere lese Zeiger.
So hat jeder Bufferklon eine eigene Position aber immer den selben Sound. Das spart viel Platz.
|
Meinst du damit das hier?
http://msdn2.microsoft.com/en-us/library/bb206037.aspx
Ja, das klingt interessant..
Zitat: |
Meinst du mit DSound dasselbe wie DirectX Audio?
|
Naja, DSound und DMusic sind doch immer noch getrennt. Ich versteh nich so richtig, was da zusammengelegt worden ist (ist wahrscheinlich nur ne Sammelbezeichnung?), das hat mich schon damals im Buch verwirrt. In JLI2 wird ja DMusic verwendet. DSound ist halt mehr low-level und außerdem kann es keine Midis abspielen, siehe auch hier: http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c_Dec_2005/DirectSound_and_DirectMusic.asp
Jedenfalls verwende ich DMusic zusammen mit DSound, ersteres halt nur für die Midis und letzteres für die waves, also geht es mir jetzt nur um DSound. _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 29.04.2007, 19:03 Titel: |
|
|
OLiver hat Folgendes geschrieben: | Naja, DSound und DMusic sind doch immer noch getrennt. Ich versteh nich so richtig, was da zusammengelegt worden ist (ist wahrscheinlich nur ne Sammelbezeichnung?), das hat mich schon damals im Buch verwirrt. |
Stimmt, hast Recht. Jetzt bin ich auch verwirrt
Hab noch mal nachgeschaut. Ich habe früher immer nur DirectMusic verwendet(jeder Sound ein IDirectMusicSegment8). Ich kann mich sogar noch an Probleme erinnern, dass eine Soundloop nicht geklappt hat, weil das Segment zu oft am Stück ablief. Jedenfalls war es mir dabei bisher nie ein Problem, ein und dasselbe Segment mehrmals (gleichzeitig) abzuspielen.
Wieso nimmst du denn nicht einfach DirectMusic oder fmod? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
OLiver Super JLI'ler
Alter: 33 Anmeldedatum: 29.06.2003 Beiträge: 306 Wohnort: Jena Medaillen: Keine
|
Verfasst am: 30.04.2007, 13:54 Titel: |
|
|
Weil mich solche low-level Sachen und wie das gemacht wird, auch interessiern und DMusic wohl nich so unbedingt für das Abspielen von waves ausgelegt ist.. _________________ http://www.sieder25.org/ (Siedler 2 - Remake) |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|