Ios 将视频从UITableViewController更改为在AVPlayerViewController中播放

Ios 将视频从UITableViewController更改为在AVPlayerViewController中播放,ios,swift,uitableview,avplayerviewcontroller,Ios,Swift,Uitableview,Avplayerviewcontroller,我有一个AVPlayerViewController,它通过URL复制一些视频流,还有一个UITableViewController,它的单元格中包含用户可以选择复制的URL。当我单击任何单元格时,我调用函数来更改要复制的流(在AvPlayerViewController中声明的setCanaleDaRiprodurre),并传递新的流url。问题是该函数不会停止播放器,也不会更改流以进行复制。似乎我正在调用另一个AvPlayerController实例,但这不对,也许我需要一个单例实例? 我链

我有一个AVPlayerViewController,它通过URL复制一些视频流,还有一个UITableViewController,它的单元格中包含用户可以选择复制的URL。当我单击任何单元格时,我调用函数来更改要复制的流(在AvPlayerViewController中声明的setCanaleDaRiprodurre),并传递新的流url。问题是该函数不会停止播放器,也不会更改流以进行复制。似乎我正在调用另一个AvPlayerController实例,但这不对,也许我需要一个单例实例? 我链接了2个类的代码和故事板结构

class VideoPlayerController: AVPlayerViewController {

//static let sharedInstance = VideoPlayerController()

override func viewDidLoad() {

    guard let url = URL(string: "http://live1.msf.ticdn.it/Content/HLS/Live/Channel(CH01HA)/Stream(03)/index.m3u8") else { return }
    let playerItem = AVPlayerItem(url: url)
    player = AVPlayer(playerItem: playerItem)
    player?.play()
}

func setCanaleDaRiprodurre(url:String){

    let url1 = URL(string:url)
    let playerItem = AVPlayerItem(url: url1!)
    player?.pause()
    player?.replaceCurrentItem(with: playerItem)
    player?.play()
    print("Hello") 
}
表单元格操作的摘录:

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

    let  VideoPlayerController = self.storyboard?.instantiateViewController(withIdentifier: "player") as! VideoPlayerController
    print(menuItems[indexPath.row].stream_url)
    print("sta andanndddooooo")
    VideoPlayerController.setCanaleDaRiprodurre(url: menuItems[indexPath.row].stream_url!)
    //VideoPlayerController.sharedInstance.setCanaleDaRiprodurre(url: menuItems[indexPath.row].stream_url!)

     }

每次调用时:
让VideoPlayerController=self.storyboard?。将EVIEWController(带标识符:“player”)实例化为!VideoPlayerController
将创建视图控制器的新实例

avplayervewcontroller
的作用与任何视图控制器几乎相同,它通常是全屏的,并根据需要显示,除非您将其作为子视图控制器嵌入并手动将其视图添加到另一个VC


无论哪种方式,您都需要维护播放器视图控制器的单个实例,才能使其正常工作。如果您能准确地解释您正在做什么以及您试图实现什么,我可以提供一个如何做到这一点的示例。

您的tableview是否在同一个视图控制器中?视频在哪里播放?您应该显示视图控制器或将其作为子视图控制器嵌入。你是怎么做到的?