实现功能主要思路:在网页端进行语音输入,PC机可以实时接收并播放语音流。
此时,Qt程序做客户端,Web端做服务器,使用QWebSocket进行通讯,实时播放接收的语音流。
功能实现
想要实现该功能,需要完成以下两大部分。
第一部分:QWebSocket通讯实现。(简单)
第二部分:语音流实时播放功能。(稍微有点难度)
接下来对于该功能实现进行具体的讲解。
1:建立通讯
1.1:创建QWebSocket通讯
添加头文件
#include <QWebSocketServer>
#include <QWebSocket>
声明WebSocket对象并响应消息
m_pWebClient = new QWebSocket;
connect(m_pWebClient, &QWebSocket::connected, this, &QWebSocketManager::MsgRecievd_Server_Connected);
connect(m_pWebClient, &QWebSocket::disconnected, this, &QWebSocketManager::MsgRecievd_Server_Disconnected);
connect(m_pWebClient, &QWebSocket::textMessageReceived, this, &QWebSocketManager::MsgRecievd_Server_TextMessageReceived);
connect(m_pWebClient, &QWebSocket::binaryMessageReceived, this, &QWebSocketManager::MsgRecievd_Server_BinaryMessageReceived);
分别响应了:连接、断开、接收字符串内容、接收二进制内容。
1.2:建立心跳包
一说到通讯,首先想到的应该是心跳包机制。在与Web通讯也是如此,为了防止掉线,程序中也需要设定一个心跳包机制。
为了保证心跳包有连接,但不频繁发送,可以采用在无数据发送时,采用3秒~10秒之间发送一条。
使用方法:QT