Solución:
ACTUALIZAR
Considere evitar createObjectURL()
, mientras que los navegadores deshabilitan su compatibilidad. Solo adjunta MediaStream
objetar directamente al srcObject
propiedad de HTMLMediaElement
p.ej <video>
elemento.
const mediaStream = new MediaStream();
const video = document.getElementById('video-player');
video.srcObject = mediaStream;
Sin embargo, si necesita trabajar con MediaSource
, Blob
o File
, tienes que crear una URL con URL.createObjectURL()
y asignarlo a HTMLMediaElement.src
.
Lea más detalles aquí: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
Respuesta anterior
Experimenté el mismo error, cuando pasé a createObjectURL
datos brutos:
window.URL.createObjectURL(data)
Tiene que ser Blob
, File
o MediaSource
objeto, no los datos en sí. Esto funcionó para mí:
var binaryData = [];
binaryData.push(data);
window.URL.createObjectURL(new Blob(binaryData, {type: "application/zip"}))
Consulte también MDN para obtener más información: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
Este error se debe a que la función createObjectURL
está obsoleto para Google Chrome
Cambié esto:
video.src=vendorUrl.createObjectURL(stream);
video.play();
a esto:
video.srcObject=stream;
video.play();
Esto funcionó para mí.
Mi código se rompió porque estaba usando una técnica obsoleta. Solía ser esto:
video.src = window.URL.createObjectURL(localMediaStream);
video.play();
Luego lo reemplacé con esto:
video.srcObject = localMediaStream;
video.play();
Eso funcionó maravillosamente.
EDITAR: Recientemente localMediaStream
ha sido obsoleto y reemplazado con MediaStream
. El último código tiene este aspecto:
video.srcObject = new MediaStream();
Referencias:
- Técnica obsoleta: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
- Técnica moderna obsoleta: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
- Técnica moderna: https://developer.mozilla.org/en-US/docs/Web/API/MediaStream