Reproducción de multimedia, de principio a fin (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Aprende cómo crear aplicaciones multimedia enriquecidas para Windows 8.1 que reproduzcan audio y vídeo, que ahorren batería y que optimicen la representación.

Veremos cómo crear una aplicación de la Tienda Windows con JavaScript cargada con características multimedia, de inicio a fin. Hay muchas mejoras en Windows 8.1 que lo hacen mucho más sencillo que antes, como la nueva msRequestFullscreen API. Veremos:

  • Conceptos básicos de la reproducción de multimedia como el uso de elementos HTML de audio y video , habilitar los controles de transporte y la carga de archivos multimedia desde el dispositivo o la red.
  • Características de la reproducción de multimedia, por ejemplo, evitar correctamente que la pantalla se atenúe, reproducir audio en segundo plano, interactuar con los controles de transporte de multimedia del sistema, cambiar el tamaño del vídeo, crear controles de transporte personalizados y habilitar la representación en ventana completa.
  • Conceptos básicos de las aplicaciones, cómo conservar el estado de la aplicación, crear la IU en la barra de aplicaciones y crear controles flotantes de configuración.

Si es la primera vez que desarrollas aplicaciones de la Tienda Windows con JavaScript, consulta Crear la primera aplicación de la Tienda Windows con JavaScript para familiarizarte con el proceso.

Cada uno de los pasos siguientes te lleva a un tema de procedimientos con ejemplos y código; explóralos si quieres más información.

La muestra Reproducción de multimedia, de principio a fin incluye todo esto de lo que hablamos aquí. Haremos referencia a esta muestra complementaria a menudo y te indicaremos los puntos donde se implementan características concretas.

Captura de pantalla de la aplicación de muestra de reproducción de multimedia

Crear una aplicación multimedia

icono de inicio

Crear la muestra

Si quieres seguir estos pasos para añadir características de medios a tu propia aplicación, puedes empezar con el tema Patrón de navegación plano, de principio a fin y el tema asociado Plantilla de patrón de navegación plano. También puedes crear un proyecto o un proyecto de navegación en blanco de la Tienda Windows en Microsoft Visual Studio. Aunque la muestra complementaria tiene una estructura de navegación sencilla, usa algunas de las funciones auxiliares de navigation.js, que no se incluyen en la plantilla en blanco. Así que puede resultar más fácil empezar con una de las plantillas de navegación y eliminar lo que no necesitas.

O bien, salta directamente a la muestra complementaria Reproducción de multimedia, de principio a fin.

La muestra complementaria implementa todos estos pasos, pero para no detenernos no repasaremos el código. Cada paso tiene una sección "Búscalo en la muestra" que te ayudará a encontrar el código rápidamente.

La estructura de los archivos fuente de la muestra es simple para que encuentres el código fácilmente sin tener que bucear entre varias capas de archivos fuente. Aunque quizás quieras reestructurar y organizar tu propio proyecto de forma diferente.

 

Conceptos básicos de la reproducción de multimedia

icono de paso

Inicio rápido: reproducir vídeo en una aplicación

Configura los pasos básicos para vídeo en tu aplicación. En este tema de procedimientos se describe cómo hacerlo, pero para reproducir audio y vídeo básico, solo tienes que añadir un elemento audio o video a tu HTML y definir la propiedad src en un archivo multimedia.

Para controlar la reproducción multimedia, usa los controles de transporte integrados agregando el atributo controls al elemento audio o video. Habilita y deshabilita los controles estableciendo la propiedad controls en true o false. Los controles de transporte proporcionan elementos comunes de la interfaz de usuario multimedia, como el botón reproducir y los controles de volumen. Este es el aspecto de esos controles en la muestra.

Captura de pantalla de la aplicación de muestra que ilustra MediaElement con los controles de transporte

Búscalo en la muestra: el elemento video se llama mediaVideo y está definido en HTML en el archivo \pages\mediaPlayer\mediaPlayer.js.

icono de paso

Formatos de audio y vídeo compatibles

Las aplicaciones de la Tienda Windows que usan JavaScript admiten un gran número de formatos de audio y vídeo. Haz clic en el vínculo para ver la lista completa.

icono de paso

Cómo abrir archivos multimedia locales con el control FileOpenPicker

Ahora que ya tenemos reproducción de multimedia, vamos a establecer el origen de multimedia mientras la aplicación se está ejecutando.

El control FileOpenPicker permite al usuario seleccionar un archivo del sistema de archivos local o de Microsoft OneDrive. Este paso muestra cómo configurar el FileOpenPicker y cómo establecer la propiedad video.src en el archivo que FileOpenPicker devuelve.

Usa StorageApplicationPermissions.futureAccessList para almacenar los permisos de los archivos que se abren con FileOpenPicker. Tu aplicación puede acceder a los archivos más adelante, por ejemplo, cuando la aplicación se restaure desde un estado de terminación.

El FileOpenPicker tiene este aspecto.

Captura de pantalla del control FileOpenPicker.

El FileOpenPicker no necesita que tu aplicación declare funcionalidades para carpetas del sistema como Música, Vídeos y Documentos. Esto se debe a que el usuario tiene el control total sobre el FileOpenPicker y sobre qué archivos se abren. Por motivos de seguridad y privacidad, tu aplicación debe declarar las menos funcionalidades posibles. Sin embargo, si quieres que tu aplicación tenga acceso a las carpetas Vídeos y Música sin la entrada del usuario — para mostrar todas las carátulas de los álbumes en la carpeta Música, por ejemplo — debes declarar las funcionalidades correspondientes. Para más información, consulta el tema sobre las declaraciones de funcionalidad de las aplicaciones.

Búscalo en la muestra: busca las funciones setMediaSourceFromFilePicker y setMediaSourceFromFile en \pages\mediaPlayer\mediaPlayer.js y el botón de la barra de aplicaciones browseButton en \pages\mediaPlayer\mediaPlayer.html.

icono de paso

Cómo abrir archivos multimedia desde la red

El control FileOpenPicker funciona bien para obtener un archivo del sistema local, pero no funciona para establecer el origen de multimedia en un archivo de la red. Para ello, solo tienes que establecer el src en la ruta del archivo multimedia en la red.

Búscalo en la muestra: busca las funciones setMediaSourceFromTextBox y setMediaSourceFromPath en \pages\mediaPlayer\mediaPlayer.js. Busca también el elemento txtSourceInput input en \pages\mediaPlayer\mediaPlayer.html, que sirve para introducir la ruta del archivo multimedia.

 

Características de la reproducción de multimedia

icono de paso Cómo mantener la pantalla encendida durante la reproducción de audio y vídeo

Normalmente, cuando una aplicación de la Tienda Windows no detecta ninguna entrada del usuario durante un determinado período de tiempo, la pantalla se atenúa y termina por apagarse. En la mayoría de las aplicaciones esto está bien, porque ahorra energía y alarga la duración de la batería. Sin embargo, en muchas aplicaciones multimedia no queremos que la pantalla se atenúe porque probablemente alguien está viendo el vídeo.

Usa la clase System.Windows.Display.DisplayRequest para indicar al sistema que mantenga la pantalla siempre encendida para tu aplicación. Sin embargo, asegúrate de cancelar esta solicitud en cuanto la aplicación ya no la necesite, por ejemplo, cuando la aplicación esté suspendida, el archivo multimedia haya terminado de reproducirse o esté en pausa. Si no se cancela esta solicitud, se malgasta la batería.

Si la representación en ventana completa está habilitada a través del botón de ventana completa de los controles de transporte integrados o a través de la función msRequestFullscreen, el sistema administra automáticamente la deshabilitación y la rehabilitación de la atenuación de la pantalla. Por lo tanto, si tu aplicación necesita deshabilitar la atenuación de la pantalla solo en modo de ventana completa, no necesitas administrar DisplayRequest.

Búscalo en la muestra: busca la función setScreenDimming en \pages\mediaPlayer\mediaPlayer.js.

icono de paso

Cómo usar los controles de transporte multimedia del sistema

Windows 8.1 presenta una nueva clase para interactuar con los controles de transporte de multimedia del sistema. A partir de ahora, usa SystemMediaTransportControls en lugar de la clase MediaControl antigua.

Los controles de transporte multimedia del sistema son distintos de los controles de transporte del objeto multimedia HTML. Estos son los controles que aparecen cuando se presionan teclas multimedia de hardware, como el control de volumen en unos auriculares o los botones multimedia de algunos teclados. Tu aplicación puede registrarse para usar estos controles e, incluso, puede devolver metadatos de multimedia, como la carátula del álbum o los títulos de las canciones, para que los muestren.

Así se ven los controles.

Captura de pantalla de los controles de transporte de multimedia del sistema

Búscalo en la muestra: busca las funciones WinJS.UI.Pages.define, setupSystemMediaTransportControls y systemMediaControlsButtonPressed en \pages\mediaPlayer\mediaPlayer.js. Así como los controladores de eventos mediaPlaying, mediaPaused y mediaEnded en \pages\mediaPlayer\mediaPlayer.js.

icono de paso

Cómo reproducir audio en segundo plano

Ahora vamos a configurar la compatibilidad para audio en segundo plano para que los usuarios puedan escuchar música con tu aplicación mientras interactúan con otra aplicación.

Cuando una aplicación que está reproduciendo vídeo se lleva a un segundo plano, como cuando el usuario cambia a una aplicación diferente, el comportamiento predeterminado es que el audio se detenga. Sin embargo, una aplicación de música puede elegir que el audio continúe reproduciéndose.

Para reproducir audio en segundo plano, debes establecer la tarea de audio en segundo plano en la sección Declaraciones del manifiesto de la aplicación. Y tienes que habilitar las propiedades isPlayEnabled y isPauseEnabled en SystemMediaTransportControls y controlar el evento buttonpressed. Esto es necesario para que el usuario tenga una manera de reproducir y detener el audio cuando la aplicación no es la aplicación activa.

Búscalo en la muestra: busca el elemento video en \pages\mediaPlayer\mediaPlayer.html, la función setupSystemMediaTransportControls en \pages\mediaPlayer\mediaPlayer.html y la sección Declaraciones de package.appmanifest.xml para habilitar la tarea en segundo plano.

icono de paso

Cómo habilitar la representación en ventana completa

Los controles de transporte integrados para los objetos de audio y video tienen un botón de ventana completa. Pero si quieres habilitar o deshabilitar la representación en ventana completa mediante programación, usa la función msRequestFullscreen.

Antes de Windows 8.1, tenías que calcular los límites de la ventana completa y mostrar y ocultar las otras UI tú mismo. Si no lo hacías correctamente, algunas optimizaciones de representación no se podían habilitar. Siempre deberás usar la función msRequestFullscreen para habilitar y deshabilitar la representación a pantalla completa. (Y es incluso es más sencillo.)

Búscalo en la muestra: busca la función fullScreenMedia en \pages\mediaPlayer\mediaPlayer.js.

icono de paso

Cómo crear controles de transporte

Si necesitas expandir las funciones que ofrecen los controles de transporte audio y video, o si quieres cambiarlos totalmente, tendrás que crear controles de transporte personalizados. La muestra de Reproducción de multimedia, de principio a fin implementa todos los controles de transporte personalizados en AppBar pero deja habilitados los controles de transporte integrados. Si vas a crear tus propios controles de transporte personalizados, quizás prefieras simplemente cambiar la interfaz de usuario integrada por la tuya.

Para desactivar los controles de transporte integrados, establece controls en false.

En este tema de procedimientos se describe cómo crear controles de transporte personalizados para reproducir, pausar, detener, avanzar, retroceder, control deslizante de posición, ventana completa, sección de audio, silenciar y volumen.

Búscalo en la muestra: busca los elementos AppBar en \pages\mediaPlayer\mediaPlayer.html y busca \pages\mediaPlayer\mediaPlayer.js para los controladores de eventos que implementan las características.

 

Conceptos básicos de la aplicación

icono de paso

Agregar barras de la aplicación

Coloca la UI que interactúa con la aplicación y los objetos audio y video en las barras de la aplicación mediante un WinJS.UI.AppBar. Los controles WinJS.UI.AppBarCommand se han creado específicamente para la AppBar y funcionan perfectamente. Están disponibles los tipos de controles siguientes: "botón", "alternar", "control flotante", "separador" y "contenido".

La enumeración WinJS.UI.AppBarIcon contiene un gran número de símbolos que puedes usar para el AppBarCommand.icon. También puedes aportar tu propio archivo de Gráfico de red portátil (PNG).

Este es el aspecto de la AppBar inferior en la muestra complementaria.

Muestra una AppBar con AppBarButtons

La muestra complementaria emplea controles flotantes para el control de la selección de las pistas de audio y el control del volumen. Esto ayuda a ahorrar espacio.

Para obtener información sobre cómo usar la AppBar y cómo diseñar tu aplicación, consulta Directrices para las barras de la aplicación.

Búscalo en la muestra: busca los elementos <div id="appBarTop" y <div id="appBarBottom" en \pages\mediaPlayer\mediaPlayer.html. Si quieres saber cómo se implementa un control o característica determinados, consulta los controladores de eventos de los botones de barra de la aplicación en \pages\mediaPlayer\mediaPlayer.js.

icono de paso

Administrar el ciclo de vida y el estado de la aplicación

Guardar el estado de las aplicaciones de la Tienda Windows es importante porque el sistema puede suspender tu aplicación en segundo plano y terminarla. Cuando se reanuda la aplicación, el usuario suele esperar que el archivo multimedia se encuentre en el mismo lugar que antes y que toda la configuración de las aplicaciones esté intacta.

Puedes guardar el estado de la aplicación en un almacenamiento aislado en el dispositivo o en un almacenamiento móvil. El almacenamiento móvil permite que el usuario inicie tu aplicación en diversos dispositivos y el estado se comparte entre ellos.

Los estados de video importantes que se deben guardar son src, currentTime, loop, paused, ended, autoplay y cualquier audioTracks seleccionada.

navigation.js son funciones auxiliares que forman parte de las plantillas de Visual Studio. Están incluidas en todas las plantillas excepto en la plantilla en blanco. Estas funciones auxiliares simplifican la administración de la suspensión, reanudación y reanudación después de haber finalizado.

Algunos estados multimedia deben restaurarse después de cargar el archivo multimedia — por ejemplo, currentTime.

Búscalo en la muestra: busca las funciones app.oncheckpoint, navigationHelper_SaveState, restoreMediaState, mediaLoaded y appResumingFromSuspend en \pages\mediaPlayer\mediaPlayer.js. En \js\default.js, busca la app.onactivated.

icono de paso

Directrices para la configuración de una aplicación

Usa el control WinJS.UI.SettingsFlyout para crear aplicaciones de la Tienda Windows con JavaScript.

La configuración es para las opciones que afectan al comportamiento de la aplicación en su conjunto y que solo se ajustan ocasionalmente. La muestra Reproducción de multimedia, de principio a fin crea los controles flotantes Configuración de audio y Configuración de vídeo que se pueden usar para almacenar las opciones de configuración de la aplicación.

Búscalo en la muestra: busca app.onactivated en \js\default.js. Las páginas de configuración audio.html, video.html, help.html y privacy.html se encuentran en la subcarpeta \settings.

 

Últimas acciones

icono de requisitos de la tienda

Uso del Kit para la certificación de aplicaciones en Windows

Se recomienda. Ejecutar el Kit para la certificación de aplicaciones en Windows te ayuda a asegurarte de que tu aplicación cumple los requisitos de la Tienda Windows. Te recomendamos que lo ejecutes cada vez que agregues funciones importantes a la aplicación.

icono de detención

¡Has terminado! Ahora que has explorado las diferentes características de reproducción de multimedia para tu aplicación, es el momento de crear una aplicación como la muestra Reproducción de multimedia, de principio a fin.

 

¿Quieres más información?

Interfaz de usuario de aplicaciones de la Tienda Windows, de principio a fin

Obtén más información sobre el diseño de la interfaz de usuario de aplicaciones de la Tienda Windows.

Interacción del usuario, de principio a fin

Obtén más información sobre cómo agregar entrada táctil a las aplicaciones de la Tienda Windows.

Guía básica para crear aplicaciones de la Tienda Windows con JavaScript

Más información sobre cómo crear aplicaciones de la Tienda Windows con JavaScript.

Diseño de la experiencia de usuario para aplicaciones

Más información sobre cómo diseñar experiencias de usuario excelentes.

Formatos de audio y vídeo compatibles

Más información sobre los formatos de audio y vídeo compatibles en las aplicaciones de la Tienda Windows con JavaScript.

Rendimiento de audio y vídeo

Más información sobre las consideraciones de rendimiento de las aplicaciones multimedia.

Inicio rápido: agregar controles y estilos de WinJS

Más información sobre los controles y eventos de la Tienda Windows con JavaScript.

Muestras relacionadas