【问题标题】:AudioQueueBufferRef in SimplePCMRecorder showing error in swift 3SimplePCMRecorder 中的 AudioQueueBufferRef 在 swift 3 中显示错误
【发布时间】:2017-03-21 09:59:40
【问题描述】:

我想从 iPhone 连接 Alexa,因为我正在使用Github 上用 swift 2.2 编写的示例

所以我需要把它转换成 Swift 3.0

从 xcode 从 Swift 2.2 迁移到 Swift 3.0 已经完成,几乎解决了所有错误,现在唯一剩下的错误与 AudioQueueBufferRef 相关

斯威夫特 2.2:

self.recorderState = RecorderState(
            setupComplete: false,
            dataFormat: AudioStreamBasicDescription(),
            queue: UnsafeMutablePointer<AudioQueueRef>.alloc(1),
            buffers: Array<AudioQueueBufferRef>(count: numberBuffers, repeatedValue: nil),
            recordFile: AudioFileID(),
            bufferByteSize: 0,
            currentPacket: 0,
            isRunning: false,
            recordPacket: 0,
            errorHandler: nil)

Swift 3.0:(仅用于参数buffers

let audioBufferQueue = Array<AudioQueueBufferRef>(repeating: nil, count: numberBuffers)

在 swift 2.2 中它工作正常,但在 swift 3.0 中它显示错误

/Users/macbookpro/Downloads/iOS-Alexa-master copy/iOS Alexa/AVS/SimplePCMRecorder.swift:28:32:表达式类型 “阵列”(又名 'Array>') 是模棱两可的 更多上下文

SimplePCMRecorder of Swift 2.2 on Github

我在 google 和 stackoverflow 上进行了搜索,但没有找到解决方案。我尝试重写和谷歌的东西,但没有解决。

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 这里有同样的问题。你找到解决方案了吗?运气好吗?
  • 没有,没有找到任何解决方案:(
  • 天哪,我被困在这里了。但如果我找到任何解决方案,会通知您。
  • @MuhammadRaza 如果您在 swift 3.0 中获得工作代码,请告诉我:(
  • 这有什么更新吗?

标签: ios iphone swift alexa alexa-voice-service


【解决方案1】:

在 Swift 3 中,使用 AudioQueueBufferRef? 而不是 AudioQueueBufferRef

let buffers = Array<AudioQueueBufferRef?>(repeating: nil, count: numberBuffers)

// and allocate each buffer
for i in 0 ..< buffers.count {
  AudioQueueAllocateBuffer(inQueue!, bufferSize, &buffers[i])
}

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2017-12-19
    • 1970-01-01
    • 2016-12-14
    • 2017-02-03
    相关资源
    最近更新 更多