Переопределение элементов интерфейса в видео

SDK предоставляет возможность переопределить контролы (элементы интерфейса, с помощью которых пользователь взаимодействует с системой):

  • прогресса видео (VideoProgress);
  • включения и выключения звука в видео (изменение внешнего вида и расположения).

1. Переопределение для VideoProgress

class CustomVideoProgressControl: UIProgressView, NativeVideoPlaybackProgressControl {
    
    /// Configures a progress control with position and duration.
    /// - Parameters:
    ///   - position: Position of current OutStream ad.
    ///   - duration: Duration of current OutStream ad.
    func configure(withPosition position: TimeInterval, duration: TimeInterval) {
    }
    
    /// Resets a video progress.
    func reset() {
    }
}

2. Переопределение для кнопки включения/выключения звука

class CustomVideoPlaybackMuteControl: UIButton, NativeVideoPlaybackMuteControl {
    /// Delegate is notified about video playback mute control events.
    var delegate: NativeVideoPlaybackMuteControlDelegate?
    
    /// Configures a mute control with specified isMuted flag.
    /// - Parameter isMuted: Flag for setting mute/unmute state.
    func configure(withIsMuted isMuted: Bool) {
    }
    
    /// Configures a mute control with specified isHidden flag.
    /// - Parameter isHidden: Flag for setting mute/unmute state.
    func configure(withIsHidden isHidden: Bool) {
    }
}

3. Создание и привязка объекта с контролами

  1. После переопределений создайте объект.

    let customVideoPlaybackControls = NativeVideoPlaybackControls(
        CustomVideoProgressControl(),
        CustomVideoPlaybackMuteControl()
    )
    
  2. Свяжите созданный объект с YMANativeMediaView.

    customVideoPlaybackControls.setupVideoPlaybackControls(to: YMANativeMediaView)