2 Stimmen

Steuerung der Lautstärke von laufenden Programmen in Mac OS X über Objective-C

Bitte edvice durch objektive-c Code-Schnipsel und nützliche Links, wie kann ich alle Audio-Signale der Ausgabe in OS X steuern?

Ich denke, es sollte so etwas wie eine Proxy-Ebene irgendwo in den Logikebenen von OS X sein.

Ich danke Ihnen!

4voto

sbooth Punkte 16258

Es ist etwas traurig, dass es dafür keine einfache API gibt. Zum Glück ist es nicht allzu schwer, nur langwierig.

Holen Sie sich zunächst das Systemausgabegerät:

UInt32 size;
AudioDeviceID outputDevice;
OSStatus result = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOuputDevice, &size, &outputDevice);

Stellen Sie dann die Lautstärke ein:

Float32 theVolume;
result = AudioDeviceSetProperty(theDevice, NULL, 0, /* master channel */ false, kAudioDevicePropertyVolumeScalar, sizeof(Float32), &theVolume);

Natürlich habe ich keine Fehlerprüfung vorgenommen, die unbedingt erforderlich ist.

Die Sache kann etwas kompliziert werden, da nicht alle Geräte Kanal 0 (den Masterkanal) unterstützen. Wenn dies bei Ihrem Gerät der Fall ist (was wahrscheinlich der Fall ist), haben Sie zwei Möglichkeiten: Fragen Sie das Gerät nach seinem bevorzugten Stereopaar und stellen Sie die Lautstärke für diese Kanäle einzeln ein, oder stellen Sie nur die Lautstärke für die Kanäle 1 und 2 ein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X