YeahGarage
@YeahGarage
Developer

Проигрывание плеера только в одной ячейке?

Друзья, подскажите, ищу вариант решения, как проигрывать аудио/видео только в одной ячейке. Поскольку в секции может быть 10-20 различных видео/музыки, пользователь может запустить везде функцию play. Интересует кто как реализовывал подобные решения

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: videCellId, for: indexPath) as! InsideVideoCell
    cell.playButton.tag = indexPath.row // 05.01
    cell.playButton.addTarget(self, action: #selector(playpause), for: .touchUpInside) // 05.01
    if let videosArray = videos?[indexPath.item] {
        queueUtility.async {
            let url = URL(string: videosArray)
            let playerItem = AVPlayerItem(url: url!)
            DispatchQueue.main.async {
                self.player = AVPlayer(playerItem: playerItem)
                self.player.actionAtItemEnd = .none
                let videoPlayerLayer = AVPlayerLayer(player: self.player)
                videoPlayerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
                videoPlayerLayer.frame = cell.bounds
                cell.insertSubview(cell.videoPlayerController.view, at: 0)
                cell.contentView.addSubview(cell.playButton)
                cell.videoPlayerController.player = self.player
                cell.videoPlayerController.view.frame = videoPlayerLayer.frame
            }
        }
    } else {
        print("Нет Видео")
    }
    return cell
}


Использую sender.tag - я запускаю/останавливаю видео в каждой ячейке, но интересует метод, как сделать возможность проигрывания только в одной ячейке
Благодарю
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
@onepavel
Консультация и разработка мобильных приложений
Коду инициализации плеера не место в методе создания ячейки.
Создай отдельный объект управляющий плеером и в него передавай команды
из после нажатия на item, думаю в didSelectRowAt
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы