Слайдер громкости Swift 5

Чтобы не мучаться со стандартным слайдером для управления громкостью, я использую 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 не будет видно слайдер, поэтому, чтобы не потерять, можно изменить цвет фона:

Готово!

August 13, 2019