gpt4 book ai didi

ios - 在 installTapOnBus () 方法中我不能做什么?

转载 作者:行者123 更新时间:2023-12-01 18:06:00 25 4
gpt4 key购买 nike

在 installTapOnBus() 方法中我不能做什么?

如果您引用讲座 WWDC 2016 Delivering an Exceptional Audio Experience @ :31 分钟,它提到在实时音频中我不需要创建线程或分配任何内存。

还有这个article也提到了这一点。

这里的游戏名称是将任何可以移动的东西从渲染 block 移到初始化函数中。这包括分配内存块和调用系统函数之类的事情。

这是我的示例代码:

inputNode?.installTap(onBus: bus,
bufferSize: myTapOnBusBufferSize,
format: theAudioFormat) {

(buffer: AVAudioPCMBuffer!,
time: AVAudioTime!) -> Void in
theShowInfo.audioFormat = theAudioFormat

self.onNewBuffer(buffer)
}

这是否意味着在我的 onNewBuffer() 函数内部

我无法输入以下内容

var myStringArray = ["",""]

或者这个..

DispatchQueue.main.async(qos: .userInteractive) {

}

还是这个?

NotificationCenter.default.post(name: Notification.Name(rawValue: MyNotificationIdentifier), object: nil)

这是否意味着,如果我在线程中执行这些调用并分配内存,我的应用程序将会崩溃?

这是否意味着如果我做fft算法,我需要在onNewBuffer函数的线程中编写fft的所有代码?

最佳答案

音频渲染线程上不会调用 InstallTapOnBus 的闭包,因此您不必担心此处的锁。渲染回调是使用 C API 设置的。如果您使用渲染回调,那么是的,您将避免任何 Swift 函数、Objective-C 消息、获取 ObjC 对象 (ARC) 所有权的分配、分配或任何其他可能需要锁定或可能需要很长时间才能完成的操作。返回。

关于ios - 在 installTapOnBus () 方法中我不能做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com