我正在处理,Chrome浏览器中从MediaRecorder API接收到的一大串流。读取数据的时间间隔设置为200毫秒,接收到的所有数据都会立即发送到服务器以进行存储。
videoMimeType = { mimeType: 'video/webm;codecs=vp9' }
recorder = new MediaRecorder(stream, videoMimeType);
...
this.recorder.ondataavailable = (bytes) => {
this.sendToServerForStorage(bytes.data);
};
this.recorder.start(2000);
我意识到,尽管存储在服务器上的文件中包含所有字节。它缺少哑剧类型信息。
通常在JavaScript中,以下代码用于为所有Blob块设置mime类型
const b = new Blob([blobchunks], {type:'video/webm'});
但是我不能这样做,因为所有块都立即发送。唯一的选择是,一旦所有blob块都上传并执行与Blob构造函数相似的操作,就可以在服务器端读取数据。不幸的是,我无法在Java中找到等效的API。请建议可以做什么。
PS:我注意到没有MIME类型信息,视频将变为静音并且无法播放音频(使用单次上传进行验证)。