在htdocs文件夹中下载并取消订阅this file(例如C:/xampp/htdocs/telephone_calls)
运行此ngrok命令:ngrok http192.168.1.24:80(将192.168.1.24替换为lan ip地址)
将文件manage_calls.py的第118行和第119行替换为您自己的
cd到telephone_calls目录并运行python manage_calls.py
使用另一台设备打开浏览器并转到https://25f4a7e689ce.ngrok.io/telephone_calls/client.html(将25f4a7e689ce替换为您自己的)
按下蓝色按钮“θηλεφωνικικοινωνία”。执行此操作后,您将在运行manage_calls.py文件的计算机中听到铃声,并会出现一个按钮
如果您按下第一台电脑上的应答呼叫1按钮,两台电脑之间将建立音频连接
文件server.html中的代码:
var recorder_1 = new MediaRecorder(remoteStream);
recorder_1.ondataavailable = event => {
// get the Blob from the event
var blob = event.data;
blob.arrayBuffer().then(blob_buffer => {
audio_data = new Uint8Array(blob_buffer)
handler.send_call_1_data(audio_data);
});
};
// make data available event fire every ten milliseconds
recorder_1.start(200);
文件manage_calls.py中的代码
@pyqtSlot(QVariant,result=QVariant)
def send_call_1_data(self,Call1BufferArray):
Call1BufferArray = list(Call1BufferArray)
#print(Call1BufferArray)
blob_bytes = b""
for i in Call1BufferArray:
blob_bytes = blob_bytes+int(i).to_bytes(8, 'little')
#print(blob_bytes)
self.call_1_data.setData(blob_bytes)
if(self.call_1_decoded_start==False):
self.call_1_decoded_start=True
self.decoder_1 = QtMultimedia.QAudioDecoder()
self.decoder_1.bufferReady.connect(self.readBuffer_1)
self.decoder_1.setAudioFormat(self.desiredFormat)
self.decoder_1.setSourceDevice(self.call_1_data)
#self.decoder_1.start()
return "ok"
错误是:QBuffer::setData: Buffer is open
。
我不知道我的解码是否正确。
有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐