Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Как сделать видео Background на Swift 4.
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
// Создаем плеер и инициализируем фоновое видео и укажем путь к нему
var player: AVPlayer?
let videoURL: NSURL = Bundle.main.url(forResource: "Название видео", withExtension: "Формат")! as NSURL
override func viewDidLoad() {
super.viewDidLoad()
// Реализуем AVPlayer
player = AVPlayer(url: videoURL as URL)
// Укажем параметры, что ничего не должно происходить после того, как видео кончится и удалим звук
player?.actionAtItemEnd = .none
player?.isMuted = true
// Зададим размеры и поместим на View
let playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
playerLayer.zPosition = -1
playerLayer.frame = view.frame
view.layer.addSublayer(playerLayer)
// И запустим его
player?.play()
// Если видео например короткое, то нам нужно зациклить его или показать другое видео, мы просто зациклим, чтобы пользовать не подумал, что приложение зависло. Для этого создадим наблюдателя:
NotificationCenter.default.addObserver(self, selector: #selector(loopVideo), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.player)
}
// Если видео закончилось, то запускаем его снова
func playerItemDidReachEnd() {
player!.seek(to: CMTime.zero)
}
// Создадим функцию для Observer, где также укажем, что начинаем играть видео снова
@objc func loopVideo() {
player?.seek(to: CMTime.zero); player?.play()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.