【问题标题】:Error -66680 (kAudioQueueErr_InvalidDevice) from AudioQueueStart in SwiftUI / Swift 5.3来自 SwiftUI / Swift 5.3 中 AudioQueueStart 的错误 -66680 (kAudioQueueErr_InvalidDevice)
【发布时间】:2021-01-02 12:57:15
【问题描述】:

我正在尝试录制音频,例如来自 Macbook 的内置麦克风。这是我的代码:

func record() {
    let sampleRate = 48000
    let numChannels = 1
    var inFormat = AudioStreamBasicDescription(mSampleRate: Double(sampleRate),
                                               mFormatID: kAudioFormatLinearPCM,
                                               mFormatFlags: kAudioFormatFlagsNativeFloatPacked,
                                               mBytesPerPacket: UInt32(numChannels * MemoryLayout<UInt32>.size),
                                               mFramesPerPacket: 1,
                                               mBytesPerFrame: UInt32(numChannels * MemoryLayout<UInt32>.size),
                                               mChannelsPerFrame: UInt32(numChannels),
                                               mBitsPerChannel: UInt32(8 * MemoryLayout<UInt32>.size),
                                               mReserved: UInt32(0))

    var inAQ: AudioQueueRef? = nil;

    var status = AudioQueueNewInput(&inFormat, callback, nil, nil, nil, 0, &inAQ)
    print("AudioQueueNewInput returned " + status.description)

    status = AudioQueueStart(inAQ!, nil)
    print("AudioQueueStart returned " + status.description)
}

我从this 回答中获取了大部分内容。但是,我得到了一个不同的错误。输出是:

AudioQueueNewInput 返回 0
2021-01-02 13:41:49.341243+0100 ocean[39484:6411401] [plugin] AddInstanceForFactory: 没有为 id F8BB1C28-BAE8-11D6-9C31-00039315CD46 注册工厂
2021-01-02 13:41:49.408830+0100 ocean[39484:6411401] HALC_ShellDriverPlugIn::Open:打开插件失败,错误:2003329396(什么)
2021-01-02 13:41:49.472141+0100 海洋[39484:6411401] [AQ] AudioQueueObject.cpp:1179:BuildConverter: AudioConverterNew 返回 -50
AudioQueueStart 返回 -50

OSStatus -50 表示参数错误。我的哪个参数不好?

编辑:我在系统偏好设置中设置了不同的音频输入。我切换到内置麦克风,现在又遇到了另一个错误:

AudioQueueNewInput 返回 0
2021-01-02 14:55:03.415688+0100 ocean[40044:6458085] [plugin] AddInstanceForFactory:没有为 id F8BB1C28-BAE8-11D6-9C31-00039315CD46 注册工厂
2021-01-02 14:55:03.482119+0100 ocean[40044:6458085] HALC_ShellDriverPlugIn::Open:打开插件失败,错误:2003329396(什么)
2021-01-02 14:55:03.483443+0100 ocean[40044:6458085] [aqme] AQMEIO.cpp:352:AQMEIOManager_FindIOUnit:错误 -66680 查找/初始化 Device.AQDefaultInput
AudioQueueStart 返回 -66680

-66680 表示设备无效。关于为什么会这样的任何提示?我更新了标题,但我仍然想知道为什么其他音频输入会拒绝这些参数。

【问题讨论】:

    标签: swift audiotoolbox macos-big-sur


    【解决方案1】:

    通过在我的目标的签名和功能中启用“音频输入”解决了这个问题。它实际上解决了所有音频输入设备的问题。

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 2017-05-30
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多