AudioKit:AKNodeRecorder随机停止麦克风

时间:2020-03-26 15:57:54

标签: ios swift audiokit akmicrophone

我有一个奇怪的人-我正在使用AKRecorder记录AKMicrophone中的短片段。但是,麦克风会不时地无声地静音。有时它发生得很快,有时需要几分钟。

我已将代码减少到最低限度,以重现此问题。基本上,我正在执行以下操作:

  1. AKMicrophone实例传递到AKBooster实例中。
  2. 使用AKBooster实例实例化AKNodeRecorderAKMixer
  3. AKMixer传递到AudioKit输出中。
  4. 开始AKRecorder录音。
  5. 每2秒触发一个计时器,以重置AKNodeRecorder并请求其再次开始记录。

代码如下:

    import UIKit
    import AudioKit
    import AudioKitUI

    class TempViewController: UIViewController {
        var recorder: AKNodeRecorder!
        var micBooster: AKBooster!
        var mainMixer: AKMixer!
        var timer: Timer?

        let mic = AKMicrophone()

        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)


            do {
                try AKSettings.setSession(category: .playAndRecord, with: .allowBluetoothA2DP)
            } catch {
                AKLog("Could not set session category.")
            }

            AKSettings.defaultToSpeaker = true
            micBooster = AKBooster(mic)

            do {
                recorder = try AKNodeRecorder(node: micBooster)
            } catch {
                AKLog("Couldn't create Recorder")
            }

            mainMixer = AKMixer(micBooster)

            AudioKit.output = mainMixer
            do {
                try AudioKit.start()
            } catch {
                AKLog("AudioKit did not start!")
            }
        }

        override func viewDidLoad() {
            super.viewDidLoad()
            self.timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(repeatRecorder), userInfo: nil, repeats: true)
            do {
                try recorder.record()
            } catch { AKLog("Error on first record")}
        }

        @objc func repeatRecorder() {
            do {
                try self.recorder.reset()
                try self.recorder.record()
            } catch { AKLog("Errored recording.") }
        }
    }

如果有人有任何想法,我将非常感谢您的帮助:

  1. 如何防止麦克风静音。
  2. 如何检测麦克风何时静音并再次唤醒它。

如果您想要一个说明该问题的github项目,则为:https://github.com/craiggrummitt/AudioKitBug

您需要调用“ pod update”来添加AudioKit。

0 个答案:

没有答案