swift - 如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐
问题描述
我有 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
}
}
}
如果音乐正在播放,我希望音乐暂停,如果没有播放,则在两种视图中播放。
解决方案
而不是循环通过所有的印刷机,只需像下面一样进行第一次触摸
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
}
}
}
但是对于您的第二个问题,您需要提供更多信息。
推荐阅读
- arrays - 如何在固定数量的部分中有不同的行?
- css - 禁用了属性“top”的 Material UI Drawer
- c# - 如何在 MVC5 的 For 循环中定义变量并在整个视图中使用它?
- java - Android:我来自哪个片段?
- mysql - Docker:将 mysql 映像添加到项目不起作用
- javascript - 有没有办法使用 react-router-dom 创建指向特定组件的某些 html 的链接?
- java - Kubernetes 服务节点端口不工作
- selenium-webdriver - Katalon Studio:如何处理消失的验证或成功消息?
- c# - 当 UseShellExecute 为真时如何读取控制台输出?
- python - 选择两个日期之间的数据集行