【问题标题】:Stop AVPlayer video when a new UITableViewCell is selected选择新的 UITableViewCell 时停止 AVPlayer 视频
【发布时间】:2021-06-23 10:11:12
【问题描述】:

我想根据我的表格视图中的选定单元格显示视频。我想在我的 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)!)
  

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

【问题讨论】:

    标签: ios swift xcode avplayer


    【解决方案1】:

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

    要解决您的问题,您需要搬家 let player = AVPlayer(url: url)setupView() 之外,只调用一次。例如,您可以将其移至init()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2018-11-06
      • 2020-02-08
      • 2016-04-22
      • 1970-01-01
      • 2013-01-31
      • 2017-11-25
      相关资源
      最近更新 更多