C++ 通过蓝牙插座c+实时传输音频+;
我试图使用蓝牙套接字和rfcomm在两台设备之间进行通信,但我的程序崩溃(请参阅错误图像) 我只听了一两秒钟,然后项目就崩溃了 这是我的客户发送音频:C++ 通过蓝牙插座c+实时传输音频+;,c++,linux,qt,sockets,bluetooth,C++,Linux,Qt,Sockets,Bluetooth,我试图使用蓝牙套接字和rfcomm在两台设备之间进行通信,但我的程序崩溃(请参阅错误图像) 我只听了一两秒钟,然后项目就崩溃了 这是我的客户发送音频: void ClientTalk::startTalk() { qDebug() << "Start talk"; audio_output->stop(); connect(audio_input, SIGNAL(stateChanged(QAudio::State)), this, SLOT(hand
void ClientTalk::startTalk()
{
qDebug() << "Start talk";
audio_output->stop();
connect(audio_input, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChangedInput(QAudio::State)));
audio_input->start(socket);
qDebug() << "Talking to server";
}
试着使用Valgrind。它只是说我从软件包中丢失了一些数据
void ClientTalk::readSocket()
{
//QBuffer *buffer;
QByteArray buff;
audio_input->stop();
connect(audio_output, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChangedOutput(QAudio::State)));
while(socket->canReadLine())
{
buff.append(socket->readLine());
QBuffer audio_buffer(&buff);
audio_buffer.open(QIODevice::WriteOnly);
//QDataStream s(buff, QIODevice::ReadWrite);
audio_output->start(&audio_buffer);
qDebug() << buff << endl;
}
buff.clear()
}
void ServerTalk::readSocket()
{
QBluetoothSocket *socket = qobject_cast<QBluetoothSocket *>(sender());
if (!socket)
return;
//QBuffer *buffer;
audio_input->stop();
QByteArray buff;
connect(audio_output, SIGNAL(stateChanged(QAudio::State)), this, SLOT(handleStateChangedOutput(QAudio::State)));
while(socket->canReadLine())
{
buff.append(socket->readLine());
QBuffer audio_buffer(&buff);
audio_buffer.open(QIODevice::WriteOnly);
//QDataStream s(buff, QIODevice::ReadWrite);
audio_output->start(&audio_buffer);
qDebug() << buff << endl;
}
buff.clear();
}
connect(btn_talk, SIGNAL(pressed()), server, SLOT(startTalk()));
connect(btn_talk, SIGNAL(released()), server, SLOT(readSocket()));