QTcpSocket & QAudioInput
-
Salve a tutti, in un programma che permette di comunicare tra un pc ed un altro via socket ho la necessità di far arrivare l'audio catturato dal microfono di un pc ad un altro.
Dato che gia uso, per altri tipi di operazioni, QTcpSocket, mi chiedevo se riuscissi, ad utilizzarlo per trasmettere l'audio con QAudioInput.
Così ho provato.
@void Server::makeStream() {QAudioInput* audio; QAudioFormat format; format.setFrequency(8000); format.setChannels(1); format.setSampleSize(8); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::UnSignedInt); QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice(); if (!info.isFormatSupported(format)) { qWarning()<<"default format not supported try to use nearest"; format = info.nearestFormat(format); } audio = new QAudioInput(format, this); this->ToSocket("Listen Me"); audio->start(this->SocketServer);
}@
Beh, pare che il server cominci a mandare dati ma adesso mi sfugge come posso farli leggere al client, per salvarli in un file magari.
Ho provato questo:
@void Client::readSocket()
{
QDataStream in(Socket);
in.setVersion(QDataStream::Qt_4_0);
if (audioincoming)
{
QFile f;
f.setFileName("/tmp/test.wav");
f.open( QIODevice::Append );
in >> f;
f.close();
return;
}
}@
Ma non posso usare l'operatore >>.Come potrei risolvere?