Pregunta sobre Arreglando WordPress de Wordpress:

¿Cómo cambiar la prioridad y el orden del video SRC? Intentando enumerar WebM primero, luego MP4

Un usuario preguntó 👇

Quiero llevar archivos HEVC mp4 y su equivalente WebM en mis páginas a partir de ahora. Ya hice una página de prueba con los archivos mp4 basados ​​en HEVC cargados y en ejecución. Desafortunadamente, por supuesto, no reproducen nada más que Safari e IE-Edge-Accelerated Hardware (y en mis dispositivos iOS y Android de prueba). Firefox tiene suerte de tener escritorio y Android.

No hay problema, pensé, porque luego cargué los equivalentes web. Según esta página aquí solo debería implicar cambiar el orden de la lista src para que webm aparezca primero (para que Chrome y Firefox lo reproduzcan) y luego enumere HEVC mp4 src debajo. Suena como lo mejor de ambos mundos; cualquiera en Chrome y Firefox que visitara mi página encontraría el archivo WebM, e IE / Edge / Safari simplemente ignoraría el archivo WebM y lo colocaría en un archivo HE4C mp4.

PERO, el problema es que WordPress parece estar ignorando mis cambios de comando, al menos en el modo «texto» del editor de publicaciones. Intenté cambiar el enlace de WebM src para que esté delante del enlace de mp4 src, pero no importa; cuando actualizo la publicación y verifico la fuente de la página HTML, siempre pongo MP4 primero … lo que significa, por supuesto, que no obtengo ningún video en Chrome / Firefox.

Entonces la pregunta es … ¿cómo puedo respetar WordPress si quiero cambiar el orden de prioridad de mis archivos multimedia? ¿Me estoy perdiendo de algo?

(@jakept)

Hace 3 años, 4 meses

WordPress se aplica, wp_video_extensions() que devuelve una serie de extensiones de video compatibles. Parece que siempre que WordPress necesita hacer algo basado en estas extensiones, lo hace en el orden definido aquí. Afortunadamente, esta lista de extensiones se puede filtrar, lo que significa que si la filtra para hacer avanzar webm:

function heiseheise_webm_first( $extensions ) {
	$new_extensions = $extensions;

	foreach ( $extensions as $key => $value ) {
		if ( $value === 'webm' ) {
			unset( $new_extensions[$key] );
			array_unshift( $new_extensions, $extensions[$key] );
			break;
		}
	}

	return $new_extensions;
}
add_filter( 'wp_video_extensions', 'heiseheise_webm_first' );

Lo probé agregando video a las fuentes webm y mp4, y webm fue lo primero cuando este filtro estaba activo, y mp4 fue lo primero cuando no lo hizo.

Esta respuesta fue modificada hace 3 años, 4 meses por. Lanzador de hilos

(@heiseheise)

Hace 3 años, 4 meses

Gracias por el rompecabezas, Jacob. Entonces, ¿agregué esto al archivo functions.php de mi tema? Especialmente en cualquier lugar o simplemente … ¿en cualquier lugar del archivo? ¿Y debería funcionar inmediatamente agregando archivos webm primero en el HTML de salida?

La razón por la que pregunto es que lo he intentado ahora y todavía está haciendo lo mismo: – La salida HTML muestra primero mp4, luego webm. Ya intenté eliminar el archivo functions.php.bin opcache, en caso de que todavía lea el archivo functions.php.bin antiguo y lo use.

No estoy seguro de lo que estoy haciendo aquí, pero al menos lo que estoy cuestionando no es una locura fuera de la pared, parece que ve una manera de hacerlo de inmediato.

(@jakept)

Hace 3 años, 4 meses

En el archivo de funciones de su tema o archivo de plugin.

Sin embargo, ¿cómo estás contribuyendo al video? ¿A través del botón agregar medios al editor?

Lanzador de hilos

(@heiseheise)

Hace 3 años, 4 meses

Sí, lo puse en el archivo de funciones.

Agregué las dos piezas de medios, el mp4 y el webm, a través del editor de medios en la publicación. Esa parecía ser la única forma en que podía «conectarlos» para que fueran dos fuentes para el mismo video en lugar de dos videos separados.

Aquí está mi código con el atajo de video:

Sin embargo, la salida en HTML se ve así:

<video id="wp_mep_1" preload="none" src="https://www.heiseheise.com/blog/wp-content/uploads/2017/10/zach_on_water_elevator.mp4" height="253" width="450">
		<source src="https://www.heiseheise.com/blog/wp-content/uploads/2017/10/zach_on_water_elevator.mp4" type="video/mp4">
		
		<source src="https://www.heiseheise.com/blog/wp-content/uploads/2017/10/zach_on_water_elevator.webm" type="video/webm">
		<object type="application/x-shockwave-flash" data="https://www.heiseheise.com/blog/wp-content/plugins/media-element-html5-video-and-audio-player/mediaelement/flashmediaelement.swf" height="253" width="450">
			<param name="movie" value="https://www.heiseheise.com/blog/wp-content/plugins/media-element-html5-video-and-audio-player/mediaelement/flashmediaelement.swf">
			<param name="flashvars" value="controls=true&file=https://www.heiseheise.com/blog/wp-content/uploads/2017/10/zach_on_water_elevator.mp4">			
		</object>		
	</video>

Lanzador de hilos

(@heiseheise)

Hace 3 años, 4 meses

Ah-HAH.

El hecho es que dos plugins antiguos que tenía todavía estaban reproduciendo medios en acción (como estoy seguro de que verá de inmediato en el código de salida HTML). Este es un blog de 10 años después de todo; Tengo tantos detritos mientras escribía mi comentario anterior, pensé para mí mismo… ”hmmm, hay muchas cosas en la etiqueta

No soy programador, pero soy consultor de TI y prueba y error es lo que hacemos … esos dos plugins desactivaron el truco, junto con su pequeña y agradable modificación de functions.php.

¡Muchas gracias, Jacob!

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *