Я изменил какой-то SWIFT-код в OBJECTIVE-C, и я застрял в определенной части кода, где не могу понять, является ли это условием или чем-то еще.
Ниже приводитсякод, и я застрял в 9-й строке, заявив:
if let channel1Buffer = buffer.floatChannelData?[0]
То, что я не понимаю, здесь выше, если условие проверяет, является ли "buffer.floatChannelData" нулевым, а затем приступает к получению первого индекса,или это что-то еще.
input.installTap(onBus: 0, bufferSize:4096, format:format, block: { [weak self] buffer, when in
guard let this = self else {
return
}
print("Buffer Float Channel Data: ", buffer.floatChannelData as Any);
**if let channel1Buffer = buffer.floatChannelData?[0]** {
print("channel1Buffer: ", channel1Buffer);
/// encode PCM to mp3
let frameLength = Int32(buffer.frameLength) / 2;
print("frameLength: ", frameLength);
let bytesWritten = lame_encode_buffer_interleaved_ieee_float(this.lame, channel1Buffer, frameLength, this.mp3buf, 4096);
// `bytesWritten` bytes stored in this.mp3buf now mp3-encoded
print("\(bytesWritten) encoded");
this.file.append(this.mp3buf, length: Int(bytesWritten));
// @TODO: send data, better to pass into separate queue for processing
}
})