如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐
Posted
技术标签:
【中文标题】如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐【英文标题】:How to pause and play music with AVPlayer in Swift in other view 【发布时间】:2019-01-11 12:38:02 【问题描述】:我有 2 个视图。一个带有音乐列表和一个“音乐播放器视图”。我正在使用下面的代码在“音乐播放器视图”中暂停和播放音乐。
我还想在音乐列表的第一个视图中暂停和播放音乐。但是当我将下面的代码添加到第一个视图并按下暂停/播放按钮时,音乐会暂停,然后直接开始播放。
override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?)
presses.forEach press in
switch press.type
case .playPause:
if player.isPlaying
player.pause()
else
player.play()
default: break
如果音乐正在播放,我希望音乐暂停,如果没有播放,则在两种视图中播放。
【问题讨论】:
显示您在哪里声明您的avplayer
对象?
我正在使用 FRadioPlayer,它是 AVPlayer 的包装器来处理互联网广播播放。我只是使用这个: let player = FRadioPlayer.shared 在“音乐播放器视图”中的 viewdidload 中: player.delegate = self 和 player.radioURL = URL(string: radiostationUrl)!
【参考方案1】:
不要循环遍历所有的印刷机,只需像下面这样进行第一次触摸 `
override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?)
guard let press = presses.first else return
switch press.type
case .playPause:
if player.isPlaying
player.pause()
else
player.play()
default: break
但是对于您的第二个问题,您需要提供更多信息。
【讨论】:
代码运行良好。问题是当我转到“播放音乐视图”并按暂停音乐暂停然后直接开始时。但是当我回到开始视图时,暂停/播放按钮在两个视图中都可以正常工作。这是我第一次按暂停/播放按钮时的问题。以上是关于如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swift 将相同的背景图像添加到我的 ios 应用程序中的所有视图?