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().