I have to change the volume on iPad and using this code:
[[MPMusicPlayerController applicationMusicPlayer] setVolume:0];
But this changing volume and showing system volume bar on iPad. How to change the sound without showing the volume bar?
I know, setVolume:
is deprecated, and everybody says to use MPVolumeView
. If this is the only way to solve my problem, then how to change the volume using MPVolumeView
? I don't see any method in MPVolumeView
that changes the sound.
Should I use some another class together with MPVolumeView
?
But it's preferable to use MPMusicPlayerController
.
Thank you for advice!
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)