首页 > 解决方案 > 如何抑制通过访问 macOS 上的 AVAudioEngine 的 inputNode 生成的警告

问题描述

我有以下用于在 macOS 上获取实时麦克风输入的测试代码:

import AVFoundation // for AVAudioEngine

class Mic
{
    public let audioEngine = AVAudioEngine()

    func startRecording() throws
    {
        print("- - -")
        let inputNode = audioEngine.inputNode
        print("- - -")

        if inputNode.inputFormat(forBus: 0).sampleRate == 0 {
            exit(0);
        }

        let recordingFormat = inputNode.outputFormat(forBus: 0)
        inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
            print( "YES! Got some samples!")
        }

        audioEngine.prepare()

        try audioEngine.start()
    }

    func stopRecording()
    {
        audioEngine.stop()
    }
}

我得到输出:


2019-07-22 16:26:36.773244+0300 realtime_mic[8111:540360] [插件] AddInstanceForFactory: 没有为 id F8BB1C28-BAE8-11D6-9C31-00039315CD46 注册工厂
2019-07-22 16:26:36.803372+03 [8111:540360] HALC_ShellDriverPlugIn::Open: 无法获得指向 Open 例程的指针
2019-07-22 16:26:36.804020+0300 realtime_mic [8111:540360] HALC_ShellDriverPlugIn::Open: 无法获得指向打开例程


这是否意味着我做错了什么?

是否可以防止这些警告显示在控制台上?

标签: macoscore-audiosuppress-warningsavaudioengine

解决方案


推荐阅读