Idioma: HTML | XAML

Inicio rápido: vídeo y audio (XAML)

Applies to Windows and Windows Phone

Reproduce audio y vídeo mediante un MediaElement en tu aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic.

Guía básica: Relación de este tema con los demás. Consulta:

Presentación

Para reproducir audio y vídeo en tu aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic, usa la clase MediaElement. MediaElement proporciona una gran cantidad de propiedades y métodos para controlar la reproducción de audio y vídeo. Analizaremos los aspectos básicos de la creación y el uso de un MediaElement.

Windows 8.1 introduce controles de transporte integrados para el MediaElement. Controlan las funciones de reproducir, detener, pausar, volumen, silenciar, búsqueda/progreso y selección de pistas de audio. Para habilitar estos controles, establece AreTransportControlsEnabled en true. Para deshabilitarlos, establece AreTransportControlsEnabled en false.

Windows 8.1 introduce una propiedad IsFullWindow para habilitar y deshabilitar la representación a pantalla completa. De este modo se garantiza que las optimizaciones del sistema están habilitadas al cambiar a la representación a pantalla completa. En Windows 8.1 y versiones posteriores, siempre deberías usar la propiedad IsFullWindow para habilitar y deshabilitar la representación a pantalla completa.

En versiones anteriores a Windows 8.1, el desarrollador es el responsable de crear una interfaz de usuario personalizada para controlar la reproducción de audio y vídeo. Por ejemplo, para iniciar el contenido multimedia en la aplicación se podía crear un Button y llamar a Play en el controlador de eventos de Button. Aunque Windows 8.1 introduce los controles de transporte integrados, hay ocasiones en las que es necesario crear una interfaz de usuario personalizada que admita funcionalidad adicional. También es posible que quieras utilizar tus propios controles en lugar de los controles integrados. Para ver información más a fondo sobre la creación de controles de transporte personalizados, consulta Cómo crear controles de transporte de multimedia personalizados.

Conceptos básicos de MediaElement

Agrega multimedia en tu aplicación creando un objeto MediaElement en XAML y establece el Source en un identificador uniforme de recursos (URI) que apunte a un archivo de audio o vídeo.

Con este código se crea un MediaElement y se establece la propiedad Source como el URI de un archivo de vídeo. MediaElement comienza a reproducirse cuando se carga la página. Para evitar que los recursos multimedia comiencen a reproducirse inmediatamente, puedes establecer la propiedad AutoPlay como false.


<MediaElement x:Name="mediaSimple" 
              Source="Videos/video1.mp4" 
              Width="400" AutoPlay="False"/>


Con el siguiente código se crea un MediaElement con los controles de transporte integrados habilitados y la propiedad AutoPlay establecida en false..


<MediaElement x:Name="mediaPlayer" 
              Source="Videos/video1.mp4" 
              Width="400" 
              AutoPlay="False"
              AreTransportControlsEnabled="True" />


Trabajar con propiedades de MediaElement

El objeto MediaElement proporciona varias propiedades específicas de multimedia. Estas son algunas de las propiedades más comunes. Consulta la página de referencia de MediaElement para ver un listado completo de propiedades, métodos y eventos.

PropiedadDescripción
AutoPlay Especifica si MediaElement debe comenzar a reproducirse automáticamente. El valor predeterminado es true.
IsMuted Especifica si el volumen está silenciado. El valor predeterminado es false.
IsFullWindow

Introducido en Windows 8.1.

Habilita o deshabilita la representación a pantalla completa. Siempre deberás usar la propiedad IsFullWindow para habilitar y deshabilitar la representación a pantalla completa. De este modo se garantiza que las optimizaciones del sistema están habilitadas.

AreTransportControlsEnabled

Introducido en Windows 8.1.

Habilita o deshabilita los controles de transporte incorporados.

Volume Especifica el volumen de audio en un intervalo entre 0 y 1 en el que 1 es el volumen más alto.
Balance Especifica la relación de volumen entre los altavoces estéreo en un intervalo entre -1 y 1. El valor predeterminado es 0.
CurrentState Especifica el estado actual del MediaElement.
IsAudioOnly Especifica si el origen multimedia actual es de solo audio.
IsLooping Especifica si el contenido multimedia actual está establecido para reiniciarse desde el principio cuando se llega al final del contenido multimedia.
NaturalDuration Especifica la duración del archivo multimedia que está abierto.
Position Especifica posición de reproducción actual. Puedes buscar otro punto en la línea temporal del elemento multimedia configurando la Position en un punto específico de la línea temporal.
PosterSource Especifica el origen de imagen que se usa para un marcador de posición mientras se carga el elemento multimedia.
Source Especifica el URI de origen del archivo de audio o vídeo.
AudioStreamCount Especifica el número de secuencias de audio que hay en el archivo multimedia actual.
AudioStreamIndex Especifica la secuencia de audio que se reproduce junto con el componente de vídeo.
Stretch

Introducido en Windows 8.1.

La propiedad MediaElement.Stretch define cómo MediaElement rellena el espacio del contenedor donde se encuentra. Los estados de Stretch son similares a la configuración de tamaño de imagen en muchos televisores. Puedes enlazarlo con un botón y dejar que el usuario elija qué configuración prefiere.

  • None muestra la resolución nativa del contenido en su tamaño original.
  • Uniform rellena todo el espacio posible, pero mantiene la relación de aspecto y el contenido de la imagen. Esto puede hacer que aparezcan barras negras horizontales o verticales en los bordes del vídeo. Esto es similar a los modos de pantalla panorámica.
  • UniformToFill rellena todo el espacio, pero conserva la relación de aspecto. Esto puede hacer que se recorte parte de la imagen. Esto es similar a los modos de pantalla completa.
  • Fill rellena todo el espacio, pero no conserva la relación de aspecto. La imagen no se recorta, pero se podría estirar. Esto es similar a los modos con ajuste.
Ampliar valores de enumeración

 

Control de la reproducción de multimedia

Windows 8.1 introduce controles de transporte integrados para controlar la reproducción de multimedia. Para habilitar los controles de transporte integrados, establece AreTransportControlsEnabled en true. Esta es la forma más sencilla de controlar la reproducción de MediaElement. Pero si quieres agregar tu propia interfaz de usuario para controlar la reproducción, esta sección muestra cómo enlazar manualmente a los métodos de reproducción en el MediaElement. Esto se puede usar para agregar compatibilidad con las características que no hay en los controles integrados o para reemplazar los controles integrados por tus propios controles personalizados.

El objeto MediaElement proporciona varios métodos específicos para multimedia para controlar la reproducción del contenido multimedia. Estos son algunos de los métodos más comunes. Consulta la página de referencia de MediaElement para ver un listado completo.

MétodoDescripción
Play Reproduce multimedia desde la posición actual.
Pause Pausa el contenido multimedia en la posición actual.
Stop Detiene el medio y restablece la Position del medio a 0.
SetSource Establece la propiedad de origen mediante la secuencia proporcionada.

 

El objeto MediaElement proporciona varios eventos específicos de multimedia. Estos son algunos de los eventos más comunes. Consulta la página de referencia de MediaElement para ver un listado completo.

MétodoDescripción
MediaOpened Se produce cuando la secuencia multimedia se ha validado y se ha abierto, y se han leído los encabezados del archivo.
MediaEnded Se produce cuando el MediaElement termina de reproducir el audio o el vídeo.
MediaFailed Se produce cuando hay un error asociado con el Source del contenido multimedia
CurrentStateChange Se produce cuando cambia el valor de la propiedad CurrentState.

 

Con el siguiente código se crea un MediaElement y una cantidad de objetos Button para controlar la reproducción multimedia. El MediaElement escucha a los eventos MediaOpened, MediaEnded y MediaFailed. También crea una interfaz de usuario para controlar Play, Stop y Pause.


<StackPanel HorizontalAlignment="Center">
    <MediaElement x:Name="media" 
                  Source="Videos/Video1.mp4" 
                  Width="300"
                  AreTransportControlsEnabled="False"
                  MediaFailed="Media_MediaFailed"
                  MediaOpened="Media_MediaOpened"
                  MediaEnded="Media_MediaEnded" />
    
    <StackPanel Orientation="Horizontal"
                HorizontalAlignment="Center">
        
        <Button Content="Play" Click="Play_Click"/>
        <Button Content="Pause" Click="Pause_Click"/>
        <Button Content="Stop" Click="Stop_Click" />
        
    </StackPanel>
</StackPanel>



void Play_Click(object sender, RoutedEventArgs e)
{
    media.Play();
}

void Pause_Click(object sender, RoutedEventArgs e)
{
    if (media.CanPause)
    {
        media.Pause();
    }
}

void Stop_Click(object sender, RoutedEventArgs e)
{
    media.Stop();
}

void Media_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
    // Handle failed media event
}

void Media_MediaOpened(object sender, RoutedEventArgs e)
{
    // Handle open media event
}

void Media_MediaEnded(object sender, RoutedEventArgs e)
{
    // Handle media ended event
}


Nota  Además de detener, pausar o reproducir multimedia, puedes buscar una posición específica al establecer la propiedad Position de un objeto MediaElement.

Establecimiento del origen multimedia

Puedes establecer el origen del MediaElement con la propiedad Source o con el método SetSource.

El tipo de propiedad Source es Uri. Para cambiar el archivo multimedia de origen, establece Source en un Uri que contenga la ruta de acceso del archivo.

El método SetSource adquiere una IRandomAccessStream, que es el origen multimedia, y el tipo de MIME del contenido multimedia. El control FileOpenPicker es una forma fácil de obtener un objeto de secuencia para un archivo en el sistema de archivos local o en Microsoft OneDrive. Para obtener más información sobre el uso del control FileOpenPicker, consulta Cómo abrir archivos multimedia con el control FileOpenPicker.

Para abrir archivos en Internet o archivos insertados en la aplicación, debes establecer la propiedad Source en el Uri del archivo. Es recomendable poner el código que establece el origen en un bloque try/catch. Para obtener más información acerca de cómo abrir archivos multimedia a través de la red, consulta el tema sobre reproducción de archivos multimedia de la red.

Evitar el oscurecimiento de la pantalla

Para evitar que se desactive la pantalla cuando no se detecte ninguna acción del usuario (por ejemplo, cuando una aplicación reproduzca un vídeo a pantalla completa), puedes llamar a DisplayRequest.RequestActive.

Para conservar energía y la duración de la batería, deberás llamar a DisplayRequest.RequestRelease para que libere la solicitud de la pantalla cuando no se requiera, por ejemplo, cuando se detiene o se pausa el contenido multimedia, cuando finaliza el contenido multimedia cuando la aplicación está en estado de suspensión.

Consulta la muestra del estado de energía de la pantalla y Cómo mantener la pantalla activada durante la reproducción de audio o vídeo para obtener más información.

Reproducir en y multimedia

Puedes usar Reproducir en para transmitir fácilmente audio, vídeo o imágenes desde un equipo a los dispositivos de la red doméstica. Para obtener más información sobre cómo habilitar Reproducir en en tu aplicación de la Tienda Windows con C++, C# o Visual Basic, consulta Inicio rápido: usar Reproducir en en aplicaciones.

Formatos multimedia admitidos

Para obtener información sobre formatos multimedia de audio y vídeo compatibles en las aplicaciones de la Tienda Windows, consulta Formatos de audio y vídeo compatibles.

Temas relacionados

Guías básicas
Guía básica para crear aplicaciones Windows en tiempo de ejecución con C# y Visual Basic
Guía básica para crear aplicaciones de Windows en tiempo de ejecución con C++
Diseño de la experiencia del usuario para aplicaciones
Agregar recursos multimedia
Muestras
Ejemplo de reproducción de multimedia XAML
Muestra de transcodificación de multimedia
Muestra de captura de multimedia
Muestra del estado de energía de la pantalla
Reproducción de multimedia, de principio a fin
Tareas
Cómo crear controles de transporte de multimedia personalizados
Cómo abrir archivos multimedia con el control FileOpenPicker
Cómo seleccionar pistas de audio en diferentes idiomas
Cómo abrir archivos multimedia desde la red
Cómo usar los controles de transporte multimedia del sistema
Cómo cambiar el tamaño del vídeo y estirarlo
Cómo reproducir audio en segundo plano
Referencia
MediaElement
Play
PlaybackRate
IValueConverter
AudioStreamIndex
Otros recursos
Formatos de audio y vídeo compatibles
Optimizar recursos multimedia

 

 

Mostrar:
© 2014 Microsoft