iOS - 使用 AudioKit 的 UIKit 视图中的 SwiftUI

问题描述 投票:0回答:0

我对 Swift 和 MVVM 还很陌生,所以如果我误解了这里的某些架构并说了一些完全错误的话,我深表歉意。

我有一个用 Swift 编写的应用程序,使用 UIKit 和一个使用 AudioKit 生成一些声音的主视图控制器。我想向该视图添加一个可视化工具,使用 AudioKitUI 库从我的应用程序在该故事板视图中生成的音频生成可视化似乎是合适的。

AudioKitUI 的大部分内容似乎都在后端的 SwiftUI 中。我看过使用 UIHostingController 但我收到一个错误,由于内部保护级别,初始化程序无法访问。如果我将 AudioKitUI GitHub 中的 SpectrogramView.swift 复制/粘贴到 swift 文件中,我就能成功生成预览。

我试图将它放入容器视图内的 UIHostingController 中,但我没有确切地看到如果不在该视图中,我应该如何让频谱图实时读取音频节点。所以它将 UIHostingController 放在我的主视图控制器中,将其添加为子视图,并将其作为子视图添加到空白 UIView。

我不确定如何让这个 SwiftUI 可视化生成器与 UIKit 一起工作,更不用说在我的 ViewController 的一个子视图中了。任何提示或建议将不胜感激。

这是我最近的尝试:

@IBOutlet var blankView: UIView!


override func viewDidLoad() {
    super.viewDidLoad()
    let spectroView = UIHostingController(rootView: SpectrogramView(node: sound.mixer))
    addChild(spectroView)
    blankView.addSubview(spectroView.view)
    }
ios swift swiftui uikit audiokit
© www.soinside.com 2019 - 2024. All rights reserved.