Getting/setting/observing sound volume?
Anyone have a good way to do these things? From a cursory search of the forum and internet, I'm a little surprised to learn that it appears to be pretty hard to set and observe the volume value.
I have a decent and reliable way to get the system volume:
import objc_util AVAudioSession = objc_util.ObjCClass("AVAudioSession") audioSession = AVAudioSession.sharedInstance() audioSession.setActive_error_(True, None) volume = audioSession.outputVolume()
and this, apparently, is the crazy way I found to set the volume:
import objc_util MPVolumeView = objc_util.ObjCClass('MPVolumeView') value = 0.5 volume_view = MPVolumeView.new().autorelease() for subview in volume_view.subviews(): if subview.isKindOfClass_(ObjCClass('UISlider')): subview.value = value break
does anyone have a better way?
And does anyone know a way to observe changes in the volume level? I have a need to implement a view which shows the current system volume...and was hoping not to poll via update().
The sound module has
Nshipste has a good tutorial on key value observers,. Which can be used to observe many properties that don't expose notificancenter notifications
Thanks, I'll try the key/value observer method.
Gotta say it's awfully weird that Apple provided no reasonable API for this...at least for observing the value, if not setting it.