Siendo ReactJS una tecnología con apenas 5 años de haber lanzado en el mercado, ha pegado con fuerza y ha gustado mucho. En lo personal me gusta mucho más que angular, ya que a pesar de que hacer desarrollo de interfaces no es mi cosa favorita ReactJS lo hace bastante simple y fácil de entender.
En este post muestro de manera sencilla cómo podemos reproducir todo tipo de archivos de video, incluyendo:
- URLs en general
- Archivos Locales
- YouTube
- Twitch
- SoundCloud
- Streamable
- Vimeo
- Wistia
- DailyMotion
Para ello vamos a usar un componente muy completo llamado ReactPlayer el cual nos permite integrar a todos estos servicios de forma sencilla.
Para ello lo primero que tenemos que hacer es instalar la dependencia en nuestro proyecto de esta forma:
NPM
npm install react-player --save
YARN
yarn add react-player
Una vez instalada la dependencia procedemos a utilizar el componente importandolo en el archivo que queremos.
import React, { Component } from 'react' import ReactPlayer from 'react-player'
Y para usar el componente ponemos esto dentro del método render() de su componente principal, o el componente que ustedes están creando:
class App extends Component { render() { return ( <div> <ReactPlayer url='https://www.youtube.com/watch?v=rnwlWn603g4' className='react-player' playing width='100%' height='100%' /> </div> ); } }
Dentro de las propiedades que podemos configurar estan:
propiedad | descripción | default |
---|---|---|
url |
La url de el video o canción que queremos usar | |
playing |
Boolean que controla si reproducir o no el recurso multimedia | false |
loop |
Boolean que controla si reproducir en ciclo o no | false |
controls |
Boolean para mostrar o no los controles del reprodcuctor ? Vimeo, Twitch y Wistia Siempre los mostrarán |
false |
volume |
Decimal entre 0 y 1 que controla el volumen del reproductor ? null usa un volumen default |
null |
muted |
Silencia el reproductor ? Solo funciona si el reproductor tiene volumen |
false |
playbackRate |
La velocidad en la que se reproduce el recurso multimedia ? Solo para: YouTube, Wistia, Y archivos locales |
1 |
width |
El ancho del reproductor | 640px |
height |
El alto del reproductor | 360px |
style |
Agrega estilos personalizados al reproductor | {} |
progressInterval |
El tiempo marcado por onProgress , en milisegundos |
1000 |
playsinline |
Aplica el atributo playsinline donde sea soportado.
playsinline sirve para evitar que sea reproducido en pantalla completa |
false |
wrapper |
elemento o componente que se usará para envolver el reproductor | div |
config |
Objeto que sobre escribe todas las propiedades default. |
Y así, sin mucho esfuerzo tienen un reproductor que es capaz de reproducir casi cualquier cosa que le pongan 🙂
Disfruten!