我想在表视图中显示与所选单元格相应的视频。我想在我的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))
.