Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Cloud Video
    • Обзор
    • Управление
      • Обзор
        • Начало работы
          • Environment
          • PictureInPictureController
          • VideoSurface
          • YaPlayer
    • Политика автозапуска браузеров
  • Управление доступом
  • Правила тарификации
  • Аудитные логи Audit Trails
  • История изменений
  • Решение проблем

В этой статье:

  • Содержание
  • Описание
  • Мониторинг состояния
  • Свойства
  • Методы
  • Примеры
  1. Видеоплеер
  2. SDK
  3. iOS
  4. CloudVideoPlayer
  5. YaPlayer

YaPlayer

Статья создана
Yandex Cloud
Обновлена 1 октября 2026 г.
Открыть в Markdown
  • Содержание
  • Описание
  • Мониторинг состояния
  • Свойства
  • Методы
  • Примеры
public final class YaPlayer

Основной объект плеера для воспроизведения видеоконтента.

СодержаниеСодержание

На этой странице:

  • Свойства
  • Методы

ОписаниеОписание

YaPlayer управляет воспроизведением: загрузкой источника, запуском, паузой, перемоткой, звуком и скоростью.

Чтобы создать экземпляр плеера, вызовите метод player() структуры Environment.

Мониторинг состоянияМониторинг состояния

Чтобы отслеживать изменения состояния плеера, подпишитесь на события с помощью Combine. Методы подписки возвращают объекты PlayerPublisher, которые передают новые значения подписчикам. Пример подписки приведен в разделе Отслеживание состояния плеера.

Во всех методах подписки параметр queue задает очередь доставки событий. По умолчанию используется главная очередь .main.

СвойстваСвойства

Имя

Тип

Описание

currentSource

ContentIdEndpoint?

Текущий источник воспроизведения.

vsid

String

Идентификатор сессии просмотра (View Session ID).

status

PlayerStatus

Текущее состояние плеера.

watchedTime

Time

Суммарное время просмотра текущего контента с момента последней установки источника.

currentTime

Time?

Текущая позиция воспроизведения.

duration

Time?

Общая длительность контента.

remainingBufferedTime

Time?

Длительность буферизованного фрагмента, начиная с текущей позиции воспроизведения.

bufferTimeRanges

[Range<Time>]

Буферизованные диапазоны времени.

seekableTimeRanges

[Range<Time>]

Доступные для перемотки диапазоны времени.

isMuted

Bool?

Текущее состояние звука.

volume

Float?

Текущий уровень громкости от 0.0 до 1.0.

videoType

VideoType?

Тип воспроизводимого контента.

onAir

Bool

true, если воспроизведение находится на правой границе шкалы времени трансляции — в прямом эфире.

latency

TimeInterval

Текущая задержка воспроизведения относительно прямого эфира, в секундах.

targetLatency

TimeInterval

Целевая задержка воспроизведения относительно прямого эфира, в секундах.

playbackSpeed

PlaybackSpeed

Текущая скорость воспроизведения.

МетодыМетоды

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

Перематывает воспроизведение на указанную позицию.

Параметры:

  • time — целевая позиция.

Возвращаемое значение: true, если перемотка выполнена успешно.


public func set(isMute: Bool)

Включает или отключает звук.

Параметры:

  • isMute: true — выключить звук, false — включить.

public func set(volume: Float)

Устанавливает уровень громкости.

Параметры:

  • volume — уровень громкости от 0.0 (тишина) до 1.0 (максимум).

public func set(playbackSpeed: PlaybackSpeed) throws

Устанавливает скорость воспроизведения.

Параметры:

  • playbackSpeed — желаемая скорость воспроизведения.

Исключения: ошибка, если заданная скорость не поддерживается для текущего контента.


public func canSet(playbackSpeed: PlaybackSpeed) -> Bool

Проверяет, поддерживает ли текущий контент заданную скорость воспроизведения.

Параметры:

  • playbackSpeed — скорость для проверки.

Возвращаемое значение: true, если скорость доступна для текущего контента.


public func playerStatusDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<PlayerStatus>

Возвращает объект PlayerPublisher для отслеживания изменений состояния плеера.


public func bufferTimeRangesDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<[Range<Time>]>

Возвращает объект PlayerPublisher для отслеживания изменений буферизованных диапазонов.


public func seekableTimeRangeDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<[Range<Time>]>

Возвращает объект PlayerPublisher для отслеживания изменений диапазонов, доступных для перемотки.


public func periodicTimePublisher(interval: TimeInterval, queue: DispatchQueue = .main) -> PlayerPublisher<TimeInterval>

Возвращает объект PlayerPublisher для периодического получения позиции воспроизведения.

Параметры:

  • interval — интервал обновления позиции воспроизведения в секундах.

public func isMutedDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<Bool>

Возвращает объект PlayerPublisher для отслеживания изменений состояния звука.


public func volumeDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<Float>

Возвращает объект PlayerPublisher для отслеживания изменений уровня громкости.


public func errorDidDetected(queue: DispatchQueue = .main) -> PlayerPublisher<PlayerError>

Возвращает объект PlayerPublisher для получения ошибок воспроизведения.


public func goToLive() async throws

Перемещает позицию воспроизведения на правую границу шкалы времени трансляции — к прямому эфиру.

Исключения: ошибка, если операция невозможна, например при воспроизведении видео по запросу (VOD).


public func playbackSpeedDidChange(queue: DispatchQueue = .main) -> PlayerPublisher<PlaybackSpeed>

Возвращает объект PlayerPublisher для отслеживания изменений скорости воспроизведения.

ПримерыПримеры

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)

Была ли статья полезна?

Предыдущая
VideoSurface
Следующая
PlayerError
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»