El reproductor perfecto con react-native-video + react-native-vlc-media-player

Martin
Ract Native con Expo
3 min readFeb 2, 2023

Si estas intentando hacer tu propio reproductor multimedia en react-native has llegado al artículo adecuado, ya que a continuación te explicare como combinar las dos librerías más utilizadas para este propósito consiguiendo así el reproductor más estable de react-native.

¡Empecemos!

La librería react-native-video es la más utilizada para desarrollar reproductores en react-native y esto es gracias a las funciones que ofrece y la facilidad con que se puede implementar. Una de las habilidades más especiales que tiene, por faltar en otras librerías, es la de obtener las pistas de audio, video y subtítulos que llevan algunos formatos de video como el mkv. Además permite seleccionarlas por lo que podemos cambiar de audio en el reproductor siempre y cuando el video lo permita.

Pero react-native-video también tiene sus defectos, como el hecho de que no acepta varios tipos de pistas tanto de audio como de video y ahí es donde entra react-native-vlc-media-player.

La libreria react-native-vlc-media-player utiliza el motor de VLC Player lo que le permite poder reproducir una mayor cantidad de tipos de audio y video. ¿Pero cual es su defecto? que no tiene soporte para multipista de audio, video y subtítulos. Así que combinaremos las dos librerías para crear el reproductor más completo desarrollado con react-native.

Lo primero que haremos será instalar las dos librerías y importarlas en nuestro componente donde generaremos el reproductor y añadimos el componente <Video> de react-native-video con los hooks para controlar las pistas de audio, video y subtítulos, que configuraremos por default el hook del video con el valor ‘auto’ y el hook del audio con el valor ‘system’. También contiene el hook y la función para guardar los metadatos del video donde contiene la información de las pistas de video, audio y subtítulos.

Se puede observar que configuramos una función para controlar los errores llamada playerError. Esta función sera muy importante porque sera la que indica cuando pasaremos del componente de react-native-video al componente de react-native-vlc-media-player. Añadimos el hook donde controlaremos este paso

Y esta seria la función de playerError donde pasaremos al componente de react-native-vlc-media-player cuando recibamos un error de NO_UNSUPPORTED_TYPE por parte del componente de react-native-video

Ahora añadiremos el componente de react-native-vlc-media-player quedando el código de la siguiente manera

¡Ya lo tenemos!

Con este código podrás empezar a desarrollar el reproductor más completo de react-native.

Ya sabes que si te ha gustado el artículo me puedes invitar a un café ;-)

Recuerda seguir la siguiente publicación para más artículos sobre React Native con Expo

--

--

Martin
Ract Native con Expo

Experto en integración de aplicaciones con más de 5 años de experiencia con IBM WMB y IIB y en la creación de flujos para Mule ESB con Anypoint Studio