Чтобы не мучаться со стандартным слайдером для управления громкостью, я использую MPVolumeView
, который прекрасно работает для аудиоплеер. Единственный его минус - он не виден ни в симуляторе, и проверить его работу можно только на устройстве.
Сначала проверяем, что добавлен фреймворк MediaPlayer
:
import MediaPlayer
Добавляем обычный UIView в наш ViewController:
@IBOutlet weak var mpVolumeHolderView: UIView!
И добавляем функцию addVolumeControls()
в viewDidLoad()
:
override func viewDidLoad() {
super.viewDidLoad()
addVolumeControls()
}
func addVolumeControls() {
mpVolumeHolderView.backgroundColor = .clear
let mpVolume = MPVolumeView(frame: mpVolumeHolderView.bounds)
mpVolume.showsRouteButton = true
mpVolumeHolderView.addSubview(mpVolume)
view.addSubview(mpVolumeHolderView)
}
Она создает View с прозрачным фоном, и на нём - контроллер громкости медиа плеера.
В Storyboard не будет видно слайдер, поэтому, чтобы не потерять, можно изменить цвет фона:
Готово!