1

在 HTML<video>对象中,我无法播放video.js-record库录制的视频。我检查了player.recordedData变量中返回的 Blob,并希望将其分配给文档中示例中提到的对象:

recordedVideo.src = createObjURL(this.player.recordedData);

它失败并在此特定行出现错误:

未处理的承诺拒绝:TypeError:类型错误

--

(我已经在使用这个函数检查URLvs的使用:webkitURL

function createObjURL ( file ) {
    if ( window.webkitURL ) {
        return window.webkitURL.createObjectURL( file );
    } else if ( window.URL && window.URL.createObjectURL ) {
        return window.URL.createObjectURL( file );
    } else {
        return null;
    }
}

它似乎使用了正确的版本。)

4

1 回答 1

1

查看 video.js-record 的文档,player.recordedData不是 Blob(您需要传递给 的createObjectUrl),而是一个 Blob 段数组 - 这将匹配TypeError.

以下更改应该会有所帮助:

function createObjURL ( blobPieces ) {
    var blob = new Blob(blobPieces, { type: 'video/webm' });
    if ( window.webkitURL ) {
        return window.webkitURL.createObjectURL( blob );
    } else if ( window.URL && window.URL.createObjectURL ) {
        return window.URL.createObjectURL( blob );
    } else {
        return null;
    }
}
于 2020-01-27T15:55:14.107 回答