2009-03-05 7 views
3

Ich habe ein Problem mit der Lautstärke des AVAudioPlayers.Einstellen des AVAudioPlayer-Volumes auf die Ruftonlautstärke des Benutzers?

Ich kann dieAudio.volume -Eigenschaft auf 1.0 setzen, aber ich möchte lieber das Audio mit der Lautstärke abspielen, auf die der Benutzer seinen iPhone-Klingelton eingestellt hat.

Die Volume-Eigenschaft wird standardmäßig auf 1.0 zurückgesetzt.

Das scheint trivial, aber ich konnte nirgends einen Verweis darauf finden.

Vielen Dank!

Antwort

1

Ich folge den Änderungen an der Hardware durch diesen Rückruf Einstellung

AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume, audioVolumeChangeListenerCallback, self); 

Aber aus irgendeinem Grunde Ich glaube, ich festgestellt, dass der Anfangszustand immer einen nicht veröffentlichte erforderlich API-Aufruf. Ich kann mich im Moment nicht erinnern. Vielleicht hilft dir diese Info in die richtige Richtung!

4

Die Lautstärke, die Sie für eine AVAudioPlayer -Instanz festlegen, ist nur eine relative Lautstärke. Wenn Sie beispielsweise zwei Sounds auf der anderen Hälfte abspielen möchten, setzen Sie die erste auf 0,5 und die zweite auf 1,0.

Die tatsächliche Geräte-Lautstärke wird nur vom Benutzer gesteuert und kann nicht programmatisch geändert werden. (Audio & Video Coding How-To's - How do I access the hardware volume controller?)

Sie können ein MPVolumeView für den Benutzer hinzufügen, der das globale Volume steuert.