使用swift 3点击单元格时如何在Avplayer中播放来自url的视频

Posted

技术标签:

【中文标题】使用swift 3点击单元格时如何在Avplayer中播放来自url的视频【英文标题】:How to play videos from url in Avplayer when a cell is tapped using swift 3 【发布时间】:2017-04-06 09:15:18 【问题描述】:

我正在尝试使用 AVPlayer 从 UITableViewCell 中的 url 播放视频。我的意思是当 VideoTableviewCell 具有视频介绍图像和该视频的标签:标题时,我希望视频播放。当该视频图像点击单元格时,来自 url 的视频将在 Avplayer 控制器中播放。 我的问题是我无法获取点击了哪个单元格图像以及如何在另一个 ViewController(AVplayerViewController)中播放相应的视频 url。 谁能帮助我了解使用什么来识别和连接被点击的图像以及如何在另一个视图控制器中播放视频。

【问题讨论】:

【参考方案1】:

Swift 4.2

您需要实现 didSelectRowAtAVKit

首先你需要导入 AV Kit

import AVKit

接下来,从 didSelectRowAt 中的索引单元格获取 url

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
   if let url = URL(string: yourArrayURL[indexPath.row]) 
      let player = AVPlayer(url: url)
      let playerViewController = AVPlayerViewController()
      playerViewController.player = player
      present(playerViewController, animated: true) 
         player.play()
      
   

在我的情况下,它的工作,我希望它也适合你

【讨论】:

【参考方案2】:

实施

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

然后在这个里面:

    if let cell = tableView.cellForRow(at: indexPath) as? VideoTableviewCell 
        // cell.AVplayer.play
    

这是一个内置的 UITableView 方法,可以告诉您何时点击了单个单元格。

【讨论】:

这在 CollectionCell 中也对我有用。谢谢。有没有办法在第二次点击时停止播放视频?

以上是关于使用swift 3点击单元格时如何在Avplayer中播放来自url的视频的主要内容,如果未能解决你的问题,请参考以下文章

swift - 在UITableView中选择单元格时如何更改按钮名称?

Swift:点击一个单元格时更改所有 UITableViewCells 的文本颜色

Swift UI 列表:点击单元格时打开外部 URL

点击该单元格时,如何访问 uicollectionviewcell 内标签的文本属性? (迅速)

UITableView 应该显示 2 个单元格时只显示 1 个单元格(Swift 3)

如何在 swift ios 中单击该单元格时在 UICollectionViewcell 中显示图像?