Nota: Si ven algo raro el código es por un error en el lenguaje del nuevo editor del foro -_- solo descarguen el proyecto.Saludos.
Mediante el apoyo de la librería "Interop.MediaPlayer" y "AxInterop.MediaPlayer.dll" realizaremos un ejemplo de un reproductor de video.
[Tienes que estar registrado y conectado para ver esa imagen]Para empezar necesitamos agregar la referencia a la librería "AxInterop.MediaPlayer.dll" y agregarla a la carpeta del proyecto, sin embargo la libreria "Interop.MediaPlayer.dll" es necesaria para que la primera funcione es por esto que también tenemos que copiarla a la carpeta bin del proyecto, aunque esta segunda no es necesario agregarla a las referencias.
AxInterop.MediaPlayer.dll & Interop.MediaPlayer.dll :
[Tienes que estar registrado y conectado para ver este vínculo]Necesitaremos algunos controles en nuestro formulario
-Dos groups box (uno para el reproductor y otro para la lista de reproducción)
-Un toolstrip y agregaremos dos botones (uno para limpiar y otro para abrir videos)
-Un listbox para la lista de reproducción
Agregamos las "using" que necesitaremos:
- Código:
-
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
Al principio de la clase insertamos los siguientes objetos que necesitaremos:
- Código:
-
AxMediaPlayer.AxMediaPlayer reproductor = new AxMediaPlayer.AxMediaPlayer();
/* Control de video windows media */
List<string> listaDir = new List<string>&#40;&#41;;
/* Lista de direcciones de archivos */
Stream stream;
/* Canal para abrir el archivo */
OpenFileDialog ofdAbrir = null;
/* Control para abrir un archivo */
Dentro del constructor:
- Código:
-
reproductor.Dock = DockStyle.Fill;
/*Para llenar el groupBox con el control media Player */
gbVideo.Controls.Add&#40;reproductor&#41;;
/* Agrega el control media al groupBox */
En el evento click del toolstripbutton:
- Código:
-
ofdAbrir = new OpenFileDialog&amp;#40;&amp;#41;;
/* OpenFileDialog */
ofdAbrir = new OpenFileDialog&#40;&#41;;
<div> ofdAbrir.Filter = "Avi|*.avi|Mpg|*.mpg|Flv|*.flv|Mov|*.mov|Mpeg|*.mpeg|Wmv|*.wmv|Todos&#40;avi,mpg,flv,mov,mpeg,wmv|*.*";</div><div> ofdAbrir.Multiselect = true;</div><div> ofdAbrir.FilterIndex = 0;</div><div> ofdAbrir.RestoreDirectory = true;</div><div>
</div><div> if &#40;ofdAbrir.ShowDialog&#40;&#41; == DialogResult.OK&#41;</div><div> &#123;</div><div> if &#40;&#40;stream = ofdAbrir.OpenFile&#40;&#41;&#41; != null&#41;</div><div> &#123;</div><div> foreach &#40;string nom in ofdAbrir.FileNames&#41;</div><div> &#123;</div><div> lstbListaRep.Items.Add&#40;nom.Split&#40;'\\'&#41;.Last&#40;&#41;&#41;;</div><div> listaDir.Add&#40;nom&#41;;</div> //Guardar directorio para futuras aberturas
<div> &#125;</div><div> reproductor.Open&#40;listaDir.Last&#40;&#41;&#41;;</div><div> &#125;</div><div> &#125;</div>
En el evento double click de la lista de reproducción que utilizaremos para obtener archivos abiertos anterior mente.
- Código:
-
<div>if &#40;lstbListaRep.Items.Count > 0 &amp;&amp; lstbListaRep.SelectedIndex >= 0&#41;</div><div> &#123;</div><div> reproductor.Open&#40;listaDir&#91;lstbListaRep.SelectedIndex&#93;&#41;;</div> &#125;
En el evento keyUp del listbox o lista de reproduccion
- Código:
-
<div>if &#40;listaDir.Count > 0&#41;</div><div> &#123;</div><div>
</div><div> if &#40;e.KeyCode == Keys.Enter&#41;</div><div> &#123;</div><div> reproductor.Open&#40;listaDir&#91;lstbListaRep.SelectedIndex&#93;&#41;;</div><div> &#125;</div><div> else if &#40;e.KeyCode == Keys.Delete&#41;</div><div> &#123;</div><div> lstbListaRep.Items.RemoveAt&#40;lstbListaRep.SelectedIndex&#41;;</div><div> listaDir.RemoveAt&#40;lstbListaRep.SelectedIndex&#41;;</div><div> &#125;</div> &#125;
/* En el proyecto se me olvido poner la funcion del boton limpiar, solo agreguenle en el evento click del boton */
- Código:
-
lstbListaRep.Items.Clear&#40;&#41;;
listaDir.Items.Clear&#40;&#41;;
Descargar:
[Tienes que estar registrado y conectado para ver este vínculo]