Я хочу записывать с микрофона iphone и конвертировать в потоковую передачу в формате ulaw

Я хочу записать с микрофона iphone и преобразовать в потоковые данные в формате ulaw, я думаю, это данные pcm, но у меня есть шум.

В каком аудиоформате используется installTap Buff? Как я могу получить формат данных ulaw? Я могу получить его из AVAudioRecorder, но у меня нет файла. При изменении настроек формата «AVFormatIDKey=kAudioFormatULaw» произойдет сбой.

          func testMicrophoneRecording1 () throws {
        let tapNode: AVAudioNode = mixerNode
        let format = tapNode.outputFormat(forBus: 0)
       
        tapNode.installTap(onBus: 0, bufferSize: 1024, format: format, block: {
            (buffer, time) in
            let d = buffer.toNSData() as Data  
            let ulaw_data = convert_pcm_(to_ulaw: d) 
            sendUlawDataToDevice(data: ulaw_data)           
        })

        try engine.start()
    }

и соединения это:

       func makeConnections() {
        let inputNode = engine.inputNode
        let inputFormat = inputNode.outputFormat(forBus: 0)
        engine.connect(inputNode, to: mixerNode, format: inputFormat)

        let mainMixerNode = engine.mainMixerNode
        let mixerFormat = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: 44100, channels: 1, interleaved: true)
        engine.connect(mixerNode, to: mainMixerNode, format: mixerFormat)
    }

1 ответ

Я получил pcm от микрофона и преобразовал его в ulaw, из этого примера: https://github.com/Epskampie/ios-coreaudio-example

Другие вопросы по тегам