// // GifvAttachmentView.swift // Tusker // // Created by Shadowfacts on 5/12/20. // Copyright © 2020 Shadowfacts. All rights reserved. // import UIKit import AVFoundation class GifvAttachmentView: UIView { override class var layerClass: AnyClass { return AVPlayerLayer.self } private var playerLayer: AVPlayerLayer { layer as! AVPlayerLayer } let item: AVPlayerItem let player: AVPlayer init(asset: AVAsset, gravity: AVLayerVideoGravity) { item = AVPlayerItem(asset: asset) player = AVPlayer(playerItem: item) super.init(frame: .zero) playerLayer.player = player playerLayer.videoGravity = gravity player.play() NotificationCenter.default.addObserver(self, selector: #selector(restartItem), name: .AVPlayerItemDidPlayToEndTime, object: item) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc func restartItem() { item.seek(to: .zero) { (success) in guard success else { return } self.player.play() } } }