融云 Web SDK 如何实现语音的收发 ?
根据融云的开发文档, 总结得出, 融云 WebSDK 需要的是一个 aac 格式的音频 url, 不关注 url 如何生成. 生成 url 的步骤由开发者实现
文档: https://docs.rongcloud.cn/v4/views/im/noui/guide/private/msgmanage/msgsend/web.html#HQVCMsg
所以关注点放在以下几个问题:
1、Web 端能否实现语音录制
2、结合融云 SDK 实现语音的发送
3、结合融云 SDK 实现语音的接收和播放
Web 端能否实现语音录制
答案是可以. 不过只有部分浏览器支持, 录制的音频格式有很多限制, 且只有当前站点为 localhost 或 https 时才可使用
录制原理:
getUserMedia、MediaRecorder
使用 getUserMedia 获取音频流, 使用 MediaRecorder 录音获取音频数据
以下为录制 5s, 获取 File 对象的代码:
// 通过 getUserMedia 获取音频流
navigator.mediaDevices.getUserMedia(constraints).then((stream) => {
const mediaRecorder = new MediaRecorder(stream);
const chunks = [];
// 收集音频数据
mediaRecorder.ondataavailable = function (e) {
chunks.push(e.data);
};
// 监听音频录制停止
mediaRecorder.onstop = e =>