Не совсем корректно делал усечение буфера, поправил. Такой тестовый фрагмент работает:
C++ (Qt)
// testing block
QByteArray byteArray;
QBuffer buffer;
buffer.open(QIODevice::ReadWrite);
buffer.write("1234", 4);
buffer.seek(3);
buffer.write("456\0", 3);
// byteArray == "abcdef"
qDebug() << buffer.size();
char ch[10];
for (int i=0;i<buffer.size();i++) {
buffer.seek(i);
buffer.read(&ch[i], 1);
qDebug() <<" numerical:"<< QString::number(ch[i]);
}
qDebug() << "ch:" << ch << " buf.size:"<< buffer.size();
byteArray=buffer.buffer();
byteArray.remove(0, 2);
buffer.buffer().remove(0, 2);
qDebug() << "array size: " << byteArray.size();
for (int i=0;i<buffer.size();i++) {
buffer.seek(i);
buffer.read(&ch[i], 1);
qDebug() <<" numerical:"<< QString::number(ch[i]);
}
qDebug() << "ch:" << ch << " \r\n buf.size:"<< buffer.size();
buffer.close();
// end test block
Вывод имеет такой вид:
6
numerical: "49"
numerical: "50"
numerical: "51"
numerical: "52"
numerical: "53"
numerical: "54"
ch: 123456 buf.size: 6
array size: 4
numerical: "51"
numerical: "52"
numerical: "53"
numerical: "54"
ch: 345656
buf.size: 4 Но с
QAudioInput не желает работать должным образом!
Буду дальше ковырять, но может есть у кого какие мысли?