我想将视频流从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);
}
但是,MediaRecorder 在 iOS 上不受支持。是否有从iOS设备发送流的替代方法?
有一些 polyfill 将 MediaRecorder API 支持添加到本机不支持它的浏览器,包括 iOS Safari。 我目前最喜欢的是Opus Media Recorder。
我遇到的一个问题是它只支持以 Ogg 或 Wav 格式录制,但 iOS 不支持播放 Ogg - 仅支持 Wav、AAC 或 MP3。 不幸的是,Wav 和 AAC 文件太大了。因此,我正在采用在 Wav 中录制并使用 lamejs 在浏览器中转码为 MP3 的方法。