YaPlayer
public final class YaPlayer
Основной объект плеера для воспроизведения видеоконтента.
Contents
Discussion
YaPlayer управляет полным жизненным циклом воспроизведения: загрузкой источника, запуском, паузой, перемоткой, управлением звуком и скоростью.
Создавайте экземпляры через Environment/player().
Мониторинг состояния
Используйте Combine-паблишеры для реакции на изменения состояния.
Properties
| Name | Type | Description |
|---|---|---|
currentSource |
ContentIdEndpoint? |
Текущий источник воспроизведения. |
Methods
public func set<AdditionalParams: Encodable>(source endpoint: ContentIdEndpoint, config: PlaybackConfig, additionalParams: AdditionalParams)
Устанавливает источник воспроизведения с дополнительными параметрами телеметрии.
public func set(source endpoint: ContentIdEndpoint, config: PlaybackConfig = .base)
Устанавливает источник воспроизведения.
public func reset()
Сбрасывает текущий источник и останавливает воспроизведение.
public func play()
Запускает воспроизведение.
public func pause()
Ставит воспроизведение на паузу.
public func seek(to time: Time) async -> Bool
Перематывает воспроизведение на указанную позицию.
Parameters:
time: Целевая позиция.
Returns: true, если перемотка выполнена успешно.
public func set(isMute: Bool)
Включает или отключает звук.
Parameters:
isMute:true— выключить звук,false— включить.
public func set(volume: Float)
Устанавливает уровень громкости.
Parameters:
volume: Уровень громкости от0.0(тишина) до1.0(максимум).
public func set(playbackSpeed: PlaybackSpeed) throws
Устанавливает скорость воспроизведения.
Parameters:
playbackSpeed: Желаемая скорость воспроизведения.
Throws: Ошибка, если заданная скорость не поддерживается для текущего контента.
public func canSet(playbackSpeed: PlaybackSpeed) -> Bool
Проверяет, поддерживает ли текущий контент заданную скорость воспроизведения.
Parameters:
playbackSpeed: Скорость для проверки.
Returns: true, если скорость доступна для текущего контента.
Examples
let environment = Environment(configuration: Configuration(from: From(raw: "my-app")))
let player = environment.player()
// Подключить поверхность для отображения
let surface = VideoSurface()
surface.attach(player: player)
// Установить источник и начать воспроизведение
if let source = ContentIdEndpoint(url: URL(string: "https://runtime.video.cloud.yandex.net/player/...")!) {
player.set(source: source, config: PlaybackConfig(autoplay: true, isMuted: false))
}
player.playerStatusDidChange()
.sink { status in
switch status {
case .play: showPlayButton(false)
case .pause: showPlayButton(true)
case .buffering: showSpinner(true)
case .fatal: showErrorScreen()
default: break
}
}
.store(in: &cancellables)