如何在AVPlayer中保存上次暂停的时间,并在另一个故事板中查找



我是xCode/swift的新手,请原谅我的经验不足。我有一个ViewController,我的观众可以在这里收听一些音频播放。当玩家点击播放按钮时,可以像这样访问播放:

@IBAction func buttonClicked(_ sender: RoundButton)
{
self.clickedButton = sender
guard let url = sender.url else {
return
}
let player = AVPlayer(url: url)

let controller = AVPlayerViewController()
controller.player = player

present(controller, animated: true) {
player.play()
}
}

我从另一个StackOverflow问题中得到了这个代码,所以我不完全理解它。我的目标是能够保存URL和上次播放时间,这样用户就可以最小化应用程序,或者导航到不同的屏幕,然后能够点击一个";继续收听";按钮,该按钮将调出另一个具有上次使用的URL的AVPlayer。这个";继续收听";AVPlayer将查找最后一次播放时间。

我知道我需要以某种方式观察第一个AVPlayer,这样当它被暂停、停止或放在后台时,我会将currentTime保存为NSUserDefault(我认为是?(。我还需要保存URL,因为用户可以点击许多不同的URL

我尝试过这样做,除了无法弄清楚观察结果之外,我也无法弄清楚NSUserDefault存在的类型不一致。我试图在设置URL NSDefault值后将其检索为字符串,但当我使用URL将字符串强制转换为URL(字符串:lastPlayedURL(时,xCode抱怨";无法转换类型数据?到期望的类型String";。

我使用其他StackOverflow问题来解决问题的问题是,我不知道把代码块放在哪里。我在哪里创建观察者?因为当我在";buttonClicked";。

谢谢你听我胡言乱语。

是的,UserDefaults似乎适合存储URL。使用此方法可以做到这一点。

要观察玩家,您需要使用AVPlayerItem。这里有一些代码显示了这一点。

关于Xcode(注意大写(和Swift语言的一般问题,恐怕这些都是你需要通过阅读/观看教程/文档来解决的问题。然后,当你发现详细的问题时,在这里发布你的代码并询问。

祝你好运,玩得开心!

相关内容

  • 没有找到相关文章

最新更新