我想将视频流从 iOS 设备(版本 11 及更高版本)发送到服务器(从在 iOS 上使用 html5 的客户端)。
对于其他浏览器,我从 navigator.getUserMedia
获取流,并使用 mediaRecorder 和 WebSocket 将其传递给服务器:
this.mediaRecorder = new MediaRecorder(this._stream);
this.mediaRecorder.start(50);
this.mediaRecorder.ondataavailable = function(e) {
app.socket.emit("frameRequest", e.data);
}
但是,iOS 不支持 MediaRecorder。除了从 iOS 设备发送流外,还有其他选择吗?
最佳答案
有一些 polyfill 可以为本身不支持 MediaRecorder API 的浏览器添加 MediaRecorder API 支持,包括 iOS Safari。我目前最喜欢的是 Opus Media Recorder .
我遇到的一个问题是它只支持以 Ogg 或 Wav 格式录制,但 iOS 不支持播放 Ogg - 仅支持 Wav、AAC 或 MP3。不幸的是,Wav 和 AAC 文件太大了。因此,我采用了在 Wav 中录制并使用 lamejs 在浏览器中转码为 MP3 的方法。
关于ios - iOS 上 mediaRecorder 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320752/