Если вы разработчик iOS и хотите включить воспроизведение видео в свое приложение Swift, в вашем распоряжении есть мощный инструмент — AVPlayer. В этой статье мы погрузимся в мир AVPlayer и рассмотрим различные способы воспроизведения видео с использованием примера кода. Итак, возьмите свой любимый напиток и начнем!
Метод 1: базовое воспроизведение видео
Давайте начнем с основного метода воспроизведения видео с помощью AVPlayer. Сначала импортируйте фреймворк AVFoundation в файл Swift:
import AVFoundation
Далее создайте экземпляр AVPlayer и AVPlayerLayer:
let videoURL = URL(string: "https://example.com/video.mp4")!
let player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
Чтобы отобразить видео, добавьте playerLayer на слой вашего представления:
playerLayer.frame = view.bounds
view.layer.addSublayer(playerLayer)
Наконец, воспроизведите видео:
player.play()
” с фактическим URL-адресом вашего видео.
Метод 2. Добавление элементов управления воспроизведением
Чтобы улучшить взаимодействие с пользователем, вы можете добавить элементы управления воспроизведением, такие как кнопки воспроизведения, паузы и поиска. Вот пример того, как этого добиться:
let playButton = UIButton(type: .system)
playButton.setTitle("Play", for: .normal)
playButton.addTarget(self, action: #selector(playButtonTapped), for: .touchUpInside)
let pauseButton = UIButton(type: .system)
pauseButton.setTitle("Pause", for: .normal)
pauseButton.addTarget(self, action: #selector(pauseButtonTapped), for: .touchUpInside)
let seekSlider = UISlider()
seekSlider.addTarget(self, action: #selector(seekSliderValueChanged), for: .valueChanged)
// Implement button actions and slider value changed handler
@objc func playButtonTapped() {
player.play()
}
@objc func pauseButtonTapped() {
player.pause()
}
@objc func seekSliderValueChanged() {
let time = CMTime(seconds: Double(seekSlider.value), preferredTimescale: 1)
player.seek(to: time)
}
Метод 3: наблюдение за состоянием воспроизведения
Вы также можете наблюдать за состоянием воспроизведения AVPlayer с помощью наблюдения за ключом и значением (KVO). Вот как это можно реализовать:
// Add observer for playback status
player.addObserver(self, forKeyPath: "status", options: [.new, .initial], context: nil)
// Implement the observer method
override func observeValue(forKeyPath keyPath: String?, of object: Any?,
change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "status" {
if let status = player.status {
if status == .readyToPlay {
// Player is ready to play
} else if status == .failed {
// Player failed to load the video
}
}
}
}
// Don't forget to remove the observer when you're done
player.removeObserver(self, forKeyPath: "status")
В этой статье мы рассмотрели различные способы воспроизведения видео с помощью AVPlayer в Swift. Мы начали с базового воспроизведения видео, добавили элементы управления воспроизведением, такие как кнопки воспроизведения и паузы, и научились наблюдать за состоянием воспроизведения с помощью KVO. Используя возможности AVPlayer, вы можете создавать потрясающие возможности видео в своих приложениях iOS.
Не забудьте обратиться к официальной документации Apple, чтобы узнать о более продвинутых функциях и возможностях настройки AVPlayer. Приятного кодирования!