Container/XiB Swift 中的音频播放器

Audio Player in Container/XiB Swift

我正在为我的应用程序开发用于流式传输音乐的自定义音频播放器,我需要它出现在我应用程序底部的每个屏幕上。为此,我使用了 UIContainerView 和后来的 xib 但在这两种情况下都面临同样的问题:

此外,如果我在带有播放器音频的容器中执行 segue 后按下播放键,则开始播放另一首曲目以及之前的播放。

此时我已经开发了播放器,它只在一个 VC 中运行良好。

我的问题是如何让它在每个屏幕上都能正常工作?

我的应用程序的结构: 7 VC 与 segues 连接,在每个屏幕的底部都有容器视图连接到一个 VC 与播放器。

在此先感谢您的帮助!

每次使用 segue 时,都会在旧视图之上加载一个新视图 - 这就是为什么您可以听到仍在隐藏视图中播放的音频。

当您在视图之间来回切换时,您实际上并没有在视图之间来回移动,您是在旧视图之上加载新视图 - 随着您的应用增长和获得更多,这可能会导致严重问题复杂。

所以我会更改应用程序的结构,而不是通过 Segues 连接 7 个 VC - 有 1 个具有大容器视图的主 VC 并加载其他 6 个 VC进入容器视图。

首先在 Storyboard 上创建一个新的视图控制器,然后在新的视图控制器中放置一个容器视图。让 Container 填满大部分视图,但音乐播放器所在的位置除外。删除通过将容器拖入而创建的视图控制器 - 您不需要它。

为了使这变得真正简单,将一个导航控制器拖到您的 Storyboard 上,它会产生 2 个视图,但继续并删除 table 视图。 Control+从 ContainerView 拖动到 Navigation 控制器,然后 select "Embed" 选项。然后从导航控制器拖拽控件到你原来的主ViewController和select"Root View Controller"。现在,当您单击容器中的一个 segue 时,它​​只会更改容器中的视图。