Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

1

05.02.2008, 18:13

Lautstärkeprobleme

Hallo, ich hab mehrere 3D-Sounds und ich bin gerade dabei eine Lautstärkekontrolle einzubauen, dass der User die Lautstärke selber einstellen kann.
Der Sound wird z.B. so erstellt:

C-/C++-Quelltext

1
2
3
    Sounds.Giesserei = new tbSound;
    Sounds.Giesserei->Init(".//Data//Sounds//giesserei.wav",DSBCAPS_STATIC | DSBCAPS_LOCDEFER | DSBCAPS_CTRL3D | DSBCAPS_MUTE3DATMAXDISTANCE| DSBCAPS_CTRLVOLUME, DS3DALG_NO_VIRTUALIZATION, 50);
    Sounds.Giesserei->SetDistances(1.0f, Clipping_far); 


Wenn ich jetzt aber für alle 50 Buffer SetVolume(-5000) aufrufe passiert gar nichts, was muss ich denn machen um die Lautstärke herabzusetzen?

Ich könnte zwar mit SetDistances die Lautstärke verändern, aber wofür gäb es dann eigentlich SetVolume()?

Und wenn ich grad dabei bin: Auf meiner Tastatur befinden sich zwei Knöpfe mit denen ich die Lautstärke unter Windows beeinflussen kann. In anderen Spielen kann ich damit auch die GesamtLautstärke verändern.
Bei meinem Spiel mit der Tribase klappt das allerdings im Vollbildmodus nicht, muss man da ein Flag bei der Erstellung von tbDirectSound mitangeben?

Viele Grüße
Andreas

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

05.02.2008, 21:07

@ Spezialtasten: Keyboard device constants
Es gibt zwei, die zu deinem Problem wie die Faust aufs Auge passen. Mit nem Flag wirste da vermutlich nichts, also selber implementieren ;)

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

3

06.02.2008, 18:42

Hi, danke für die Antwort,
heißt das ich muss diese Buttons abfragen:
DIK_VOLUMEDOWN
DIK_VOLUMEUP
Muss ich dann selber auf die Windowslautstärke zugreifen und diese herauf und herunter setzen? (Wenn ich nur die Lautstärke der tbMusic* heraufdrehe bringt das ja nichts, wenn die Windowslaustärke auf 0 steht. Zudem kann ich dabei nicht Werte > 0 einsetzen)
Sicher das es keinen anderen Weg gibt, der z.B. die "Tasten durchkommen lässt", sodass Windows selbständig die Lautstärke verändert? Wenn ich STRG+ALT+ENTF drücke muss ich ja windows auch nicht anweisen den Taskmanager zu öffnen.

Zu meiner ersten Frage, ich muss mich entschuldigen dieses Problem war durch eigenes Versagen hervorgerufen worden, tut mir leid, hab den Fehler gefunden!

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

06.02.2008, 22:22

Sofern der Keyboardtreiber die Tasten für die Lautstärke schon behandelt, müsste dein Spiel darauf eigentlich nicht reagieren.
Behandelst du das Event dann trotzdem, wird quasi zweimal die Lautstärke gesteigert: ingame und von Windows. Ich glaube allerdings nicht, dass es einen einfachen Weg gibt, zu erkennen ob Windows diese Tastendrücke selber behandelt.

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

5

08.02.2008, 22:47

Danke trotzdem für die Hilfe, hab das passende Flag gefunden, ich hätte nicht DISCL_EXCLUSIVE angeben dürfen sondern DISCL_NONEXCLUSIVE!

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

6

09.02.2008, 14:44

Damit machst du aber was anderes, als die Lautstärkeregelung an Windows abzugeben, ich dachte du meintest sowas wie ein Flag für DXSound.

Andreas

Frischling

  • »Andreas« ist der Autor dieses Themas

Beiträge: 77

Beruf: Schüler

  • Private Nachricht senden

7

09.02.2008, 20:30

Ja, ich hab auch grad gemerkt, das dieser Weg auch nicht so doll ist.
Ich kann damit zwar mit den Tasten die Lautstärke von Windows verändern, allerdings passiert es jetzt, dass wenn ich mich mit dem GUI-Cursor der linken oberen Ecke nähere, der normale WindowsCursor wieder sichtbar wird und wenn man dann noch klickt das Spiel sogar minimiert wird.

Kann man das irgendwie verhindern, oder sollte ich das besser im Forum für Input fragen?

Viele Grüße
Andreas

Werbeanzeige