Я использую AVKit
для воспроизведения видео с URL, и видео воспроизводится без каких-либо проблем. Я создал PlayerViewClass
, чтобы назначить игрока на просмотр.
PlayerViewClass.swift
import UIKit
import AVKit
import AVFoundation
class PlayerViewClass: UIView {
override static var layerClass: AnyClass {
return AVPlayerLayer.self
}
var playerLayer: AVPlayerLayer {
return layer as! AVPlayerLayer
}
var player: AVPlayer? {
get {
return playerLayer.player
}
set {
playerLayer.player = newValue
}
}
}
И я использовал это в cellForItemAt
методе в моем ViewController
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "videoCell", for: indexPath) as? VideoCollectionCell else {
return UICollectionViewCell()
}
let videoUrl = URL(string: "file.mp4")
let avPlayer = AVPlayer(url: videoUrl!)
cell.playerView.playerLayer.player = avPlayer
cell.playerView.frame = CGRect(x: 0, y: 0, width: 352, height: 180) // it is not resizing
cell.playerView.player?.play()
return cell
}
Я не понимаю, как я могу изменить размеры моего проигрывателя на всю ячейку myCell
имеет высоту и ширину: -
CGSize(width: 352, height: 180)
CollectionViewCell класс: -
class VideoCollectionCell: UICollectionViewCell {
@IBOutlet weak var playerView: PlayerViewClass!
override func awakeFromNib() {
super.awakeFromNib()
}
}
Пожалуйста, помогите.