iOS 9: How to change volume programmatically without showing system sound bar popup?

For 2018, working on iOS 11.4 You need to change slider.value after a small delay. extension MPVolumeView { static func setVolume(_ volume: Float) { let volumeView = MPVolumeView() let slider = volumeView.subviews.first(where: { $0 is UISlider }) as? UISlider DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.01) { slider?.value = volume } } } Usage: MPVolumeView.setVolume(0.5) Objective-C version