createObjectURL: введите ошибку в Safari при использовании Blob
В HTML <video>
объект, я не могу воспроизвести видео, записанное библиотекой video.js-record. Я проверил Blob, возвращенный вplayer.recordedData
переменную и хотел назначить ее объекту, как указано в примере из документации:
recordedVideo.src = createObjURL(this.player.recordedData);
Он не работает с ошибкой в этой конкретной строке:
Отклонение необработанного обещания: TypeError: Type error
-
(Я уже проверяю использование URL
против 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;
}
}
и, похоже, использует правильную версию.)
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;
}
}