Мое требование - воспроизводить фильмы с UICollectionView
напрямую, нажимая кнопку дистанционного воспроизведения / паузы, когда ячейка находится в фокусе.
Это прекрасно работает, если мы перейдем в фоновый режим (нажав кнопку «Домой») и выйдем на передний план(или) предъявив viewcontroller
и уволив.Но в обычных случаях это не работает.
Воспроизведение / Пауза не работает для пользовательских AVPlayer
также, поскольку я не использую avplayer
элементы управления (здесь также Воспроизведение / Пауза работает как вышеописанные случаи)
Тот же код ниже
Я возвращаю UICollectionViewCell
всякий раз, когда preferredFocusEnvironments
вызывается
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:SuggestionsCollectionViewCell.reuseIdentifier, for: indexPath) as! SuggestionsCollectionViewCell
let playPauseRecognizer = UITapGestureRecognizer(target: self, action: #selector(selectThisMagazineCell))
playPauseRecognizer.allowedPressTypes = [NSNumber(value: UIPressType.playPause.rawValue)]
playPauseRecognizer.numberOfTapsRequired = 1
cell.addGestureRecognizer(playPauseRecognizer)
return cell
}
Для AVPLayerViewController
класса у меня есть код, подобный приведенному ниже для воспроизведения / паузы
let playPauseRecognizer = UITapGestureRecognizer(target: self, action: #selector(playPauseMenuButtonPressed))
playPauseRecognizer.allowedPressTypes = [NSNumber(value: UIPressType.playPause.rawValue)];
self.view.addGestureRecognizer(playPauseRecognizer)