gpt4 book ai didi

ios - AudioKit:我可以在不调用 AudioKit.stop() 的情况下禁用 AKMicrophone 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:44 25 4
gpt4 key购买 nike

我有一个具有两个功能的应用程序。播放 AKMetronome 并允许在应用程序不在前台时进行后台播放。另一个是使用 AKMicrophone 的调谐器功能,它只需要在应用程序处于前台时处于事件状态。这些功能可以同时使用(调谐器处于事件状态时节拍器灯闪烁)。

当我按下主页按钮时,节拍器继续播放(如预期的那样)。但是调谐器的有源麦克风也会导致 bright red "recording"-style bar在所有其他应用程序的设备顶部。不过,当应用程序未打开时,我不需要调谐器来运行。

如何禁用 AKMicrophone 节点,使该栏不显示,同时保持 AKMetronome 节点播放不间断?

我尝试了以下方法,但都没有成功:

  • 在应用委托(delegate) applicationWillResignActive() 方法中调用 AudioKit.stop()。这摆脱了录音栏,但停止了节拍器。
  • applicationWillResignActive() 期间调用 AKMicrophone 节点上的 stop()。这不会删除录音栏。
  • applicationWillResignActive() 期间调用 AKMicrophone 节点上的 stop()disconnectOutput()。这也不会删除录音栏。

我怀疑我可能需要终止整个引擎(即 AudioKit.stop()),从链中移除麦克风节点,然后重建并重新启动引擎,所有这些都在 applicationWillResignActive 方法。但这会打断 AKMetronome 的节奏,所以我希望它不会变成那样。

最佳答案

我认为您应该将 AudioKit 用于节拍器,并将 AudioKit 的一部分称为 AKMicrophoneTracker 用于调谐器。

http://audiokit.io/docs/Classes/AKMicrophoneTracker.html https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/Internals/Microphone%20Tracker/AKMicrophoneTracker.swift

AudioKit 使用 AVAudioEngine 作为其信号流,而跟踪器实际上是一个完全独立的基于 EZAudio 的信号流。我相信两者可以独立使用。

您当前跟踪麦克风的方式可能与此类似: http://audiokit.io/playgrounds/Analysis/Tracking%20Microphone%20Input/

你会想让它更像这样:

let tracker = AKMicrophoneTracker()
tracker.start()

//: User Interface
import AudioKitUI

class LiveView: AKLiveViewController {

var trackedAmplitudeSlider: AKSlider?
var trackedFrequencySlider: AKSlider?

override func viewDidLoad() {

AKPlaygroundLoop(every: 0.1) {
self.trackedAmplitudeSlider?.value = tracker.amplitude
self.trackedFrequencySlider?.value = tracker.frequency
}

addTitle("Tracking With Microphone Tracker")

trackedAmplitudeSlider = AKSlider(property: "Tracked Amplitude", range: 0 ... 0.8) { _ in
// Do nothing, just for display
}
addView(trackedAmplitudeSlider)

trackedFrequencySlider = AKSlider(property: "Tracked Frequency",
range: 0 ... 2_400,
format: "%0.3f Hz"
) { _ in
// Do nothing, just for display
}
addView(trackedFrequencySlider)

}
}

HTH.

关于ios - AudioKit:我可以在不调用 AudioKit.stop() 的情况下禁用 AKMicrophone 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47300457/

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