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