Задать вопрос
SnapSh0t
@SnapSh0t
iOS-Developer

Как вставить видео в UICollectionView swift 3?

Здравствуйте!

Есть динамическая ячейка с массивом изображений, все отображаются корректно, реализовал функцию загрузки видео и хранение ее в CoreData, ума не приложу как отобразить его в collectionview вместе с фото? Видео скачано в формате mp4 и хранится в NSData. Подскажите, будьте добры)
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Collection_cell", for: indexPath) as! CollectionViewCell
        
        let images = NSKeyedUnarchiver.unarchiveObject(with: recipe.imageRecipe! as Data) as! NSArray
        
        let video = NSKeyedUnarchiver.unarchiveObject(with: recipe.videoRecipe! as Data) as! NSData
        
        let img = UIImage(data: images[indexPath.row] as! Data)!


        cell.recipeImageView.image = img
        
        return cell
    
    }
  • Вопрос задан
  • 643 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
alexyat
@alexyat
iOS Developer
Свифтом не пользуюсь, на Obj-C
AVPlayer *gifPlayer = [AVPlayer playerWithURL:videoURL];
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:gifPlayer];
videoLayer.frame = thumb.frame;
videoLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.layer addSublayer:videoLayer];
[gifPlayer play];


где self это UIView на который нужно добавить видео. videoLayer.frame - размер UIView на который будет добавлен проигрыватель.
Ответ написан
Zinapp
@Zinapp
iOS Developer from Rivne, Ukraine.
Переводил конвертером на свифт.
var videoLayer = AVPlayerLayer(gifPlayer)
videoLayer.frame = thumb.frame
videoLayer.videoGravity = .resizeAspectFill
layer.addSublayer(videoLayer)
gifPlayer.play()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы