google chrome - Videos que ya no transmiten con mediaelement.js en Chrome
google-chrome video-streaming (3)
Esto se debe a que desde Chrome 50 una llamada play () en un elemento <video>
o un elemento <audio>
devuelve una Promesa. Si la reproducción tiene éxito, se cumple la Promesa, y si la reproducción falla, la Promesa se rechaza junto con un mensaje de error que explica la falla.
Puede encontrar algunos ejemplos y más información aquí: https://developers.google.com/web/updates/2016/03/play-returns-promise?hl=en
Durante los últimos días, notamos que nuestros videos dejan de transmitir usando MediaElement.js Version 2.11.3
y Chrome Version 50.0.2661.94 (64-bit)
Los videos todavía se reproducen en Firefox y Safari sin problemas.
El error que recibimos en las herramientas de desarrollo de Chrome es:
Uncaught (in promise) DOMException: The element has no supported sources.
El marcado en la página representada se ve así:
<video height="150" poster="https://xxxxxxxxxx.cloudfront.net/123423_1_thumb.jpg" preload="auto" width="200" src="" hidden-source="https://xxxxxxx.cloudfront.net/123423_1_wm.webm">
<object data="flashmediaelement.swf" height="150" type="application/x-shockwave-flash" width="200">
<param name="movie" value="flashmediaelement.swf">
<param name="flashvars" value="controls=true&file=http://s38zby1czkz3d7.cloudfront.net/123423_1_wm.mp4">
</object>
</video>
Aquí hay algunas imágenes de los errores para hacerlo un poco más claro:
Aquí están los mensajes de error en la consola:
Podría replicar este problema con Chromium 51. Sin embargo, parece que este problema ya no ocurre con Chrome 53.
Desafortunadamente, no he podido encontrar una confirmación fácil de leer en Internet, que este fue un error confirmado para Chromium / Chrome que se solucionó, pero solo indicios de que varias personas informaron problemas con las versiones de Chrome / Chromium. Por ejemplo, aquí. Los videos ya no se transmiten con mediaelement.js en Chrome, donde el desarrollador de Google Chrome también apunta a esta lista de correo interna de cromo, pero cuyos contenidos son bastante crípticos sin mayor investigación. Parece estar relacionado con un interruptor llamado ENABLE_BROWSER_CDMS y la implementación de EME para compatibilidad con DRM, que no funcionaba como se suponía. https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/Qi4dLcKjcCM
También puede ser un problema CORS. Establecer media.crossOrigin = ''anonymous'';
Y asegúrese de que la respuesta del servidor tenga el encabezado Access-Control-Allow-Origin: *
. O en lugar del comodín de asterisco, especifique el dominio del sitio web que tiene permiso para acceder al video desde el servidor.