如果只想使用HTML5,则需要一个实现 HTML Media Capture
草稿(在此处可用)的浏览器,以便从麦克风访问原始数据。
一旦掌握了这些数据,就需要通过网络发送它。Websockets将是HTML5选项,以便与服务器具有足够快的往返行程(同时发送本地音频数据和接收远程音频数据)
既然您提到python,我建议您看看websockets的扭曲实现。
您可以让所有客户端使用一个callerID在websocket服务器上“注册”,因此服务器知道在哪里可以找到给定的callerID。
然后,您的服务器将需要一个“邀请” API,其中caller1“邀请” caller2。
呼叫建立后,每个客户端开始发送其音频数据,服务器将能够将该音频数据发送给另一方。
接收到音频数据后,浏览器可能需要使用HTML5音频标签在扬声器上播放此音频数据。
为此,您可能被迫使用“技巧”:您可能需要模拟2个“无限”文件,而不是让websocket服务器将原始音频数据转发到客户端,而是:
- caller1.wav:在caller1麦克风上捕获的声音
- caller2.wav:在caller2麦克风上捕获的声音
呼叫建立后,caller1浏览器会在audio.src属性中添加caller2.wav(通过websocket通知caller1该事件),并希望python服务器在接收到原始音频数据后将其添加到caller2.wav,它将开始播放。
这听起来像是很酷的原型,您将要破解!
祝你好运,
杰罗姆·瓦格纳(Jerome Wagner)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)