微信的语音段传输
原理
使用 webRTC 技术获取麦克风设备和录制音频
使用 webSocket 技术传输音频流
备注:webRTC与webSocket的区别
WebSockets允许浏览器和Web服务器之间的全双工通信
WebRTC的PeerConnection允许两个浏览器之间的全双工通信
webRTC的使用
获取麦克风/摄像头设备
// 获取媒体设备
navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
/* 使用这个stream stream */
})
.catch(function(err) {
/* 处理error */
});
// constrains配置参数
var constrains = {
// 获取麦克风
audio: true,
// 获取摄像头
video: {
width: { min: 1024, ideal: 1280, max: 1920 },
height: { min: 776, ideal: 720, max: 1080 },
// 优先前置摄像头
facingMode: "user",
// 强制后置摄像头
facingMode: { exact: "environment" },
// 帧率
frameRate: { ideal: 10, max: 15 }
}
}适配旧的浏览器
webSocket的使用
Github地址
效果展示

Last updated