gpt4 book ai didi

swift - tvOS 中 UICollectionViewCell 的播放/暂停远程键

转载 作者:搜寻专家 更新时间:2023-11-01 06:57:28 27 4
gpt4 key购买 nike

我的要求是在单元格获得焦点时通过按播放/暂停远程键直接播放 UICollectionView 中的电影。

如果我们进入后台(通过按主页按钮)并进入前台(或)呈现 viewcontroller 并关闭,它会完美地工作。但正常情况下它不起作用。

播放/暂停对自定义 AVPlayer 也不起作用,因为我没有使用 avplayer 控件(这里也像上述情况一样播放/暂停)

下面是相同的代码

每当调用 preferredFocusEnvironments 时,我都会返回 UICollectionViewCell

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)

最佳答案

将您的 UITapGestureRecognizer 添加到 UICollectionViewCell 而不是 AVPlayerUICollectionViewCell 将成为捕获焦点的元素。

在单元格焦点上添加 UITapGestureRecognizer,并在单元格失去焦点时移除。

子类 UICollectionViewCell覆盖 didUpdateFocus 来捕获焦点事件:

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocus(in: context, with: coordinator)

if isFocused {
// Add gesture
}
else {
// Remove gesture
}
}

然后,在您的 playPauseMenuButtonPressed func 中调用单元格拥有的播放器上的播放/暂停。

关于swift - tvOS 中 UICollectionViewCell 的播放/暂停远程键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com