如何录制16bit音频快速?

时间:2017-08-31 05:16:37

标签: ios iphone swift avaudioengine

我正在实现记录和从AVAudioEngine获取音频缓冲区的功能并与播放器一起播放,但它是32位我需要16位采样率8000你可以建议我什么我需要为此而努力。

engine = AVAudioEngine()
guard let engine = engine, let input = engine.inputNode else {
    // @TODO: error out
    return
}

let format = input.inputFormat(forBus: 0)
input.installTap(onBus: 0, bufferSize:4096, format:format, block: { [weak self] buffer, when in

    guard let this = self else {
        return
    }


    if let channel1Buffer = buffer.floatChannelData?[0] {
       let test = self?.copyAudioBufferBytes(buffer)
        let stram:NSData = (self?.toNSData(PCMBuffer: buffer))!
        SocketIOManager.sharedInstance.socket.emit("talk",stram);

    }
})

engine.prepare()

do {
    try engine.start()
} catch {
    // @TODO: error out
}

我尝试使用上面的代码来录制音频及其工作正常但无法获得16位数据。我将此缓冲区发送到socket并在Android设备中播放它,但不能在android中播放它,因为它不支持32位数据。所以请提供你的建议。

0 个答案:

没有答案