iOS - подключить байты UDP к AUGraph - PullRequest
0 голосов
/ 07 апреля 2020

Мне действительно нужна помощь в воспроизведении аудио-байтов из UDP с использованием AUGraph. Я записал (Mi c) и сыграл байты (Revertback), используя AUGraph, и мой recordingCallback выглядит следующим образом.

func performRecording(
            _ ioActionFlags: UnsafeMutablePointer<AudioUnitRenderActionFlags>,
            inTimeStamp: UnsafePointer<AudioTimeStamp>,
            inBufNumber: UInt32,
            inNumberFrames: UInt32,
            ioData: UnsafeMutablePointer<AudioBufferList>
    ) -> OSStatus {
        var err: OSStatus = noErr


        err = AudioUnitRender(audioUnit!, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData)

        let ptrData = ioData[0].mBuffers.mData!.bindMemory(to: Int16.self, capacity: Int(inNumberFrames))
        let bufferPtr = UnsafeBufferPointer(start: ptrData, count: Int(inNumberFrames))


        _ = TPCircularBufferProduceBytes(&circularBuffer, Array(bufferPtr), inNumberFrames * 2)

        return err
    }

Где я получаю байты в ioData и помещаю их в TPCircularBuffer, но то, что я хочу состоит в том, чтобы поместить байты UDP в AudioBufferList и воспроизводить их, а не микрофон.

Важно, чтобы я не хотел воспроизводить байты UDP напрямую, но сначала я хочу применить NewTimePitch AUFormatter, а затем воспроизводить эти байты, используя мой IOUnit в AUGraph.

Нужна помощь в переводе аудиобайт из UDP в InputBus (элемент 1) AudioUnit.

...