iOS AVAUDIO: EXC_ BAD_ACCESS в AudioUnitRender при выходе из фона - PullRequest
0 голосов
/ 31 марта 2020

Я просмотрел все ресурсы, которые смог найти, прежде чем отправлять вопрос сам, но я просто не смог получить ответы на свою проблему, поэтому вот так:

В моем приложении iOS я записываю звук с помощью микрофона, затем извлекаю этот звук с помощью AdioUnitRender () и отправляю его делегату.

Это все работает хорошо, пока приложение не выходит из фона, где я получаю сообщение об ошибке в AudioUnitRender:

AURemoteIO :: IOThread (15): EXC_BAD_ACCESS (код = 1, адрес = 0x102044000)

Включение объектов зомба ie для просмотра дополнительной информации не работает для меня.

Мой код:

func inputCallback(
    inRefCon:UnsafeMutableRawPointer,
    ioActionFlags:UnsafeMutablePointer<AudioUnitRenderActionFlags>,
    inTimeStamp:UnsafePointer<AudioTimeStamp>,
    inBusNumber:UInt32,
    inNumberFrames:UInt32,
    ioData:UnsafeMutablePointer<AudioBufferList>?) -> OSStatus {

    let sm = Unmanaged<AudioManager>.fromOpaque(inRefCon).takeUnretainedValue()
    if (!sm.playing) {
        return noErr
    }
    if (sm.delegates.count < 1) {
        return noErr
    }
    guard let inUnit = sm.inputUnit else { return noErr }

    let listPtr = sm.audioBufferList.unsafeMutablePointer
   [enter image description here][1]         
    let status = AudioUnitRender(inUnit,
                                 ioActionFlags,
                                 inTimeStamp,
                                 inBusNumber,
                                 inNumberFrames,
                                 listPtr)

    if (status != noErr) {
        return status;
    }

    DispatchQueue.main.async {
        for delegate in sm.delegates {
            delegate.processSampleData(inputDataList: listPtr, frameCount: Int(inNumberFrames), numInputChannels:  sm.inputChannels)
        }
    }
    return noErr
}

Изображение ошибки: https://i.stack.imgur.com/ItPo3.png

Любая помощь очень ценится.

...