Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. QTcpSocket & QAudioInput
Forum Updated to NodeBB v4.3 + New Features

QTcpSocket & QAudioInput

Scheduled Pinned Locked Moved Italian
2 Posts 2 Posters 2.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    aleskandro
    wrote on last edited by
    #1

    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?

    1 Reply Last reply
    0
    • G Offline
      G Offline
      GortiZ
      wrote on last edited by
      #2

      potresti provare eliminando il QDataStream ed utilizzando:
      @
      f.write( Socket.readAll() );
      @

      .-:|GortiZ|:-.

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved