我发现了一个解决方案今天,其中包括使用var canRecordVp9 = MediaRecorder.isTypeSupported('video/webm;codecs=vp9');
铬(和Opera)和Firefox之间进行区分,然后做if (canRecordVp9)
{
mediaRecorder = new MediaRecorder(stream, {mimeType : 'video/webm;codecs=vp9'});
} else
{
mediaRecorder = new MediaRecorder(stream);
}
相应地构造MediaRecorder。
然后,抓住BLOB时:if (canRecordVp9)
{
blob = new Blob([myArrayBuffer], { "type" : "video/webm;codecs=vp9" });
} else
{
blob = new Blob([myArrayBuffer], { "type" : "video/webm" });
}
最后,使用的FileReader来获取BLOB作为dataUrl:`
var reader = new FileReader();
reader.onload = function(event)
{
var blobDataUrl = event.target.result;
}
reader.readAsDataURL(blob);`
我那么blobDataUrl保存为WebM档案,并记录在Chrome的视频在Firefox做工精细,反之亦然。