Yandex Cloud
Search
Discuss with expertTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
    • 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
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • 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
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Cloud Video
    • Overview
    • Control
      • Overview
        • Getting started
          • VideoView
    • Browser autoplay policy
  • Access management
  • Pricing policy
  • Audit Trails events
  • Release notes
  • Troubleshooting

In this article:

  • Contents
  • Discussion
  • Basic use in UIKit
  • SwiftUI
  • Inheritance
  • Methods
  • Examples
  1. Video Player
  2. SDK
  3. iOS
  4. CloudVideoPlayerUI
  5. VideoView

VideoView

Written by
Yandex Cloud
Updated at May 28, 2026
View in Markdown
  • Contents
  • Discussion
  • Basic use in UIKit
  • SwiftUI
  • Inheritance
  • Methods
  • Examples
public final class VideoView: UIView

UIView component for displaying videos with the built-in control skin.

ContentsContents

  • Methods

DiscussionDiscussion

VideoView extends the basic VideoSurface design with integrated controls: play and pause buttons, a progress bar, a buffering indicator, full-screen support, an error screen, and logo display support.

Use VideoView if you need a turnkey player skin. For minimalistic embedding without a skin or to implement a custom skin, use VideoSurface from CloudVideoPlayer.

Basic use in UIKitBasic use in UIKit

SwiftUISwiftUI

InheritanceInheritance

  • UIView

MethodsMethods

public func setupLogo(_ configuration: (UIImageView) -> Void)

Configures a logo displayed over the video.

Parameters:

  • configuration: Closure for configuring the logo's UIImageView.

public func reset()

Detaches the player from the view.


public func attach(player: YaPlayer)

Attaches the player to the view.

Parameters:

  • player: Player instance to display.

public func getPipController() -> PictureInPictureController?

Returns the Picture-in-Picture (PiP) mode controller, if available.

Returns: PictureInPictureController instance, or nil if the device does not support PiP.

ExamplesExamples

import CloudVideoPlayerUI

class PlayerViewController: UIViewController {
  private let player = environment.player()
  private let videoView = VideoView()

  override func viewDidLoad() {
    super.viewDidLoad()

    view.addSubview(videoView)
    videoView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
      videoView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
      videoView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
      videoView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
      videoView.heightAnchor.constraint(equalTo: videoView.widthAnchor, multiplier: 9.0 / 16.0)
    ])

    videoView.attach(player: player)
  }
}
import SwiftUI
import CloudVideoPlayerUI

struct VideoPlayerView: UIViewRepresentable {
  let player: YaPlayer

  func makeUIView(context: Context) -> VideoView {
    let view = VideoView()
    view.attach(player: player)
    return view
  }

  func updateUIView(_ view: VideoView, context: Context) {
    view.attach(player: player)
  }
}

Was the article helpful?

Previous
VideoType
Next
Getting started
© 2026 Direct Cursus Technology L.L.C.