gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:28:57 26 4
gpt4 key购买 nike

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

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!)

}

Storyboard

最佳答案

每次调用时:let VideoPlayerController = self.storyboard?.instantiateViewController(withIdentifier: "player") as! VideoPlayerController 将创建 View Controller 的新实例。

AVPlayerViewController 的行为方式与任何 View Controller 几乎相同,它通常是全屏的并根据需要呈现,除非您将其嵌入为 subview Controller 并将其 View 手动添加到另一个 VC。

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

关于ios - 将视频从 UITableViewController 更改为在 AVPlayerViewController 中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com