我正在实现记录和从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位数据。所以请提供你的建议。