选择新的UITableViewCell时停止AVPlayer视频



我想在表视图中显示与所选单元格相应的视频。我想在我的vc.中的视图中显示视频

当点击单元格时,以下代码显示正确的视频,但每当我选择新单元格时,旧视频中的音频仍然存在。我该如何移除它?

在我的vc:中设置视图

func setupView(for url: URL) {
let player = AVPlayer(url: url)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.videoView.bounds
self.videoView.layer.addSublayer(playerLayer)
player.play()
}

didSelectRow代码:

let selectedExercise = exercises[indexPath.row]
setupView(for: URL(string: selectedExercise.videoUrl)!)

我的猜测是,在播放新视频之前,我应该暂停/停止上一个视频。但我不知道该怎么做。非常感谢!

这是因为您每次点击都会创建AVPlayer的新实例。

为了解决你的问题,你需要搬家let player = AVPlayer(url: url)在CCD_ 2之外,并且只调用它一次。例如,您可以在init()中移动它。

为了更新setupView()中的资产(视频url(,您可以使用player.replaceCurrentItem(with: AVPlayerItem(url: url)).

最新更新