当我在物理设备上使用AudioKit的AKMicrophoneTracker
时,频率和幅度始终都是0
。但是在游乐场和iOS模拟器中,它可以很好地工作。
这是一个粗略的例子:
class AppDelegate: UIResponder, UIApplicationDelegate {
let tracker = AKMicrophoneTracker()
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// start the tracker and show frequency information
tracker.start()
Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true, block: { _ in
print(tracker.frequency)
print(tracker.amplitude)
})
}
}
我已重置我的物理设备的隐私权限,iOS正确提示我允许麦克风访问。即使我允许麦克风访问,它仍然无法正常工作。
如何让AKMicrophoneTracker实际读取这些值?
我正在使用AudioKit 4.0.3。使用时它按预期工作:
使用时不起作用:
我最初将其发布为a bug on AudioKit's GitHub issue tracker。但是,Aure(项目维护者)鼓励我在这里发帖。
答案 0 :(得分:6)
以下是7 +,6s对我有用:
在AppDelegate中:
import UIKit
import AudioKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let tracker = AKMicrophoneTracker()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// start the tracker and show frequency information
tracker.start()
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true, block: { _ in
print(self.tracker.frequency)
print(self.tracker.amplitude)
})
return true
}
...
<强> info.plist中强>
...
<key>NSMicrophoneUsageDescription</key>
<string>WE need your microfone to contact the aliens</string>
...
答案 1 :(得分:0)
Ercell0's answer是正确的 - 他的代码完美无缺。我的具体问题似乎是由我认为在测试期间禁用的其他一些AudioKit功能引起的。它相当于运行:
AudioKit.output = AKMixer()
AudioKit.start()
AKMicrophoneTracker
初始化后的。这导致了我遇到的AKMicrophoneTracker
问题。
看起来可能是AudioKit中的错误。我已经在Github上开了issue #1142。