Multimedia

Desarrolla una aplicación que permita a los usuarios crear y reproducir experiencias multimedia de lo más emocionantes. Ahora es más sencillo hacerlo en Windows 8.1, que dispone de nuevas propiedades para capturar medios de distintos entornos, así como un método sencillo para agregar controles de reproducción a aplicaciones que usen XAML (lenguaje de marcado de aplicaciones extensible). Además, ofrece compatibilidad nativa con extensiones de medios cifrados (MSE) para la reproducción de HTML5.

Actualizaciones de Windows 8.1

  • Característica de procesamiento de vídeo
  • Característica de captura de audio y vídeo
  • MediaElement de XAML
  • Reproducción de vídeo y audio de HTML5
  • Característica Reproducir en

Actualizaciones en las características de procesamiento de vídeo

[Obtén la muestra de Media Hub y la muestra de MediaStreamSource ahora.]

Windows 8.1 presenta algunas actualizaciones nuevas, además de compatibilidad con formatos de vídeo, códecs y procesamiento relacionados.

Compatibilidad con CFF

Microsoft Media Foundation agregó a sus implementaciones de MP4/fMP4 la compatibilidad con Common File Format (CFF). CFF es un formato contenedor de audio/vídeo basado en el formato de archivo multimedia de base ISO.

Nuevo modo XVP

El procesador Transcode Video Processor (XVP) de Media Foundation agregó el modo MrfCrf444, que siempre se ejecuta en el software y no usa la aceleración de hardware DirectX Video Acceleration (DXVA). Esto garantiza la uniformidad de los resultados en todas las plataformas, independientemente del hardware subyacente. Dado que el modo MrfCrf444 se ejecuta por completo en el software, es posible que la operación de transcodificar tarde más tiempo y use más energía. Este nuevo modo fuerza el uso de filtros más amplios, emplea una precisión total para las conversiones de colores, prefiere formatos de color de mayor calidad y permite una acción de deshacer entrelazado de alta calidad.

Para usarlo en tu aplicación, establece MediaTrancoder.VideoProcessingAlgorithm en MediaVideoProcessingAlgorithm.mrfCrf444.

// sourceFile and destFile are IStorageFile objects defined elsewhere.

var profile = Windows.Media.MediaProperties.MediaEncodingProfile.createMp4
    (Windows.Media.MediaProperties.VideoEncodingQuality.hd720p); 

var transcoder = new Windows.Media.Transcoding.MediaTranscoder(); 

transcoder.videoProcessingAlgorithm = 
    Windows.Media.Transcoding.MediaVideoProcessingAlgorithm.mrfCrf444; 

transcoder.prepareFileTranscodeAsync(sourceFile, destFile, profile); 
using Windows.Media.MediaProperties;
using Windows.Media.Transcoding;

var transcoder = new MediaTranscoder(); 
var profile = MediaEncodingProfile.CreateMp4(
    MediaProperties.VideoEncodingQuality.HD720p); 

transcoder.videoProcessingAlgorithm = 
    MediaVideoProcessingAlgorithm.MrfCrf444; 

// _InputFile and _OutFile are defined outside this example.
transcoder.PrepareFileTranscodeAsync(_InputFile, _OutputFile, profile); 

Compatibilidad con intervalo YUV extendido en Media Foundation

En Windows 8, la canalización de Media Foundation se establecía de forma predeterminada en el intervalo YUV de Studio Swing [Y: 16-235] y no ofrecía la posibilidad de emitir señal si la entrada se encontraba en el intervalo YUV extendido [Y: 0-255]. Ahora, la canalización de Media Foundation es capaz de emitir la señal del intervalo extendido al hardware de la unidad de procesamiento gráfico (GPU). Esto permite que toda la canalización de Media Foundation, incluido el descodificador MJPEG, admita el intervalo extendido.

El atributo MF_MT_VIDEO_NOMINAL_RANGE sirve para especificar el intervalo YUV extendido o de Studio para el contenido.

Origen de secuencia multimedia

Windows 8.1 presenta un nuevo origen multimedia genérico para las aplicaciones de la Tienda Windows, denominado Origen de secuencia multimedia (MSS). Las API para esta tecnología se encuentran en el espacio de nombres Windows.Media.Core y la clase principal del origen de medios es MediaStreamSource. MSS permite que las aplicaciones envíen muestras de audio y vídeo sin comprimir a la canalización de medios para su reproducción, transcodificación y streaming. La aplicación puede generar dinámicamente las muestras de medios, o bien desmultiplexarlas a partir de una secuencia o de archivos. Esta flexibilidad ofrece a las aplicaciones una manera más sencilla de ampliar la compatibilidad de plataformas para nuevos formatos de medios o resolver problemas complejos, como el streaming adaptable o la implementación de un origen multimedia personalizado en código administrado.

Las API MediaStreamSource son muy similares a las API de Microsoft Silverlight del mismo nombre. Por tanto, los desarrolladores que están familiarizados con las versiones de Silverlight de estas API podrán aprovechar muchos de sus conocimientos al usar MSS para crear aplicaciones de la Tienda Windows.

MSS se puede usar con objetos audio y video en aplicaciones de la Tienda Windows con JavaScript, objetos MediaElement en aplicaciones de la Tienda Windows con C++, C# o Visual Basic, y MediaTranscoder.

Estas son algunas de las principales API de MSS. El orden refleja el flujo básico del funcionamiento de MSS. Como puedes ver, MediaStreamSource envía objetos de solicitud a la aplicación a través de argumentos de eventos. Estos objetos de solicitud permiten que la aplicación interactúe con MediaStreamSource y le devuelva datos.

API Descripción
MediaStreamSource Representa un origen multimedia que entrega muestras multimedia directamente a la canalización de medios. MediaStreamSource consume objetos MediaStreamSample proporcionados por la aplicación.
MediaStreamSample Representa una muestra de medio usada por MediaStreamSource.
Evento MediaStreamSource.Starting

MediaStreamSource usa este evento para notificar a la aplicación que está lista para comenzar a procesar datos multimedia.

MediaStreamSourceStartingRequest

Representa una solicitud de MediaStreamSource que indica que está listo para comenzar a procesar datos multimedia.

Las aplicaciones deben responder lo antes posible a esta solicitud mediante una llamada a SetActualStartPosition. Si una aplicación necesita que MediaStreamSource retrase el procesamiento de datos, puede obtener un aplazamiento asincrónico mediante una llamada a MediaStreamSourceStartingRequest.GetDeferral. Cuando la aplicación está lista para que comience MediaStreamSource, llama a Complete en el objeto de aplazamiento.

Se accede a la solicitud de inicio a través de MediaStreamSourceStartingEventArgs, que se pasan al controlador de eventos MediaStreamSource.Starting.

Evento MediaStreamSource.SampleRequested

MediaStreamSource usa este evento para notificar a la aplicación que está lista para una MediaStreamSample.

Es necesario que las aplicaciones registren un controlador para este evento.

MediaStreamSourceSampleRequest

Representa una solicitud de MediaStreamSource para una nueva muestra de medio. Al establecer la propiedad Sample en la nueva MediaStreamSample, se activa MediaStreamSource para recuperar la muestra de medio y seguir procesando los datos multimedia.

Las aplicaciones deben responder lo antes posible a esta solicitud. Si una aplicación necesita tiempo antes de enviar MediaStreamSample, puede obtener un aplazamiento asincrónico mediante una llamada a MediaStreamSourceSampleRequest.GetDeferral. Cuando la aplicación ha terminado con el aplazamiento, llama a Complete en el objeto de aplazamiento.

Se accede a la solicitud de muestra a través de MediaStreamSourceSampleRequestedEventArgs, que se pasan al controlador de eventos MediaStreamSource.SampleRequest.

Para indicar que ha llegado al final de la secuencia, la aplicación responde a una MediaStreamSourceSampleRequest sin proporcionar una MediaStreamSample, o bien asigna la propiedad MediaStreamSourceSampleRequest.Sample a null.

Evento MediaStreamSource.Closed

MediaStreamSource usa este evento para notificar a la aplicación que se ha cerrado.

MediaStreamSourceClosedRequest

Representa una solicitud de MediaStreamSource que indica que se ha cerrado.

Se accede a la solicitud de cierre a través de MediaStreamSourceClosedEventArgs, que se pasan al controlador de eventos MediaStreamSource.Closed.

MediaElement.SetMediaStreamSource Establece el origen del MediaElement en un MediaStreamSource.

 

La muestra MediaStreamSource ofrece un ejemplo detallado del uso de MSS.

Actualizaciones de captura de audio y vídeo

[Obtén las muestras de Media Capture y detección de efectos de audio ahora.]

Windows 8.1 introduce un montón de actualizaciones de las características para capturar audio y vídeo.

Modo de secuencia fotográfica

El modo de secuencia fotográfica realiza una secuencia de fotos continua. Para configurar este modo, usa la clase LowLagPhotoSequenceControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Usa la propiedad LowLagPhotoSequenceControl.Supported para averiguar si un dispositivo admite el modo de secuencia fotográfica.

Uno de los principales escenarios para el modo de secuencia fotográfica es el de tomar fotos en el pasado, es decir, antes de que el usuario haga la foto. Puedes usar PhotoCapturedEventArgs.CaptureTimeOffset para indicar si un fotograma pertenece al futuro o al pasado. El futuro se representa con un valor mayor que cero, y el pasado con un valor menor que cero.

Para iniciar este modo, llama a MediaCapture.PrepareLowLagPhotoSequenceCaptureAsync. Para comenzar a capturar fotos, llama a StartAsync. La aplicación seguirá recibiendo fotos del dispositivo hasta que la operación se detenga. Para detener la captura de fotos, llama a StopAsync.

Para establecer la cantidad de fotogramas por segundo que obtiene la aplicación, usa LowLagPhotoSequence.PhotosPerSecondLimit. Esto puede ser útil cuando el sensor del dispositivo puede administrar 30 fotogramas por segundo (fps), pero la aplicación solo necesita 4 fps.

Compatibilidad con miniaturas

Se admiten las miniaturas para operaciones con una sola foto y con secuencias de fotos, mediante las clases LowLagPhotoControl y LowLagPhotoSequenceControl, a las que puedes acceder mediante la propiedad MediaCapture.VideoDeviceController.

Para habilitar las miniaturas, establece la propiedad ThumbnailEnabled en true. Para establecer el tamaño de miniatura que quieras, usa DesiredThumbnailSize y establecer el formato con ThumbnailFormat.

Modo de escena

El modo de escena ajusta el posprocesamiento de los fotogramas capturados para adaptarlos mejor a la escena que se está grabando en ese momento. Para configurar este modo, usa la clase SceneModeControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

La propiedad SupportedModes indica los modos de escena (por ejemplo Snow, Night y Sport) compatibles con un dispositivo. Para seleccionar un modo, llama a SceneModeControl.SetValueAsync.

Modo linterna

El modo linterna usa el LED de iluminación de un dispositivo. Para configurar este modo, usa la clase TorchControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad TorchControl.Supported. Si lo admite, puedes usar el modo linterna en aplicaciones, tanto si son de captura como si no, para acciones como iluminar una habitación.

Modo flash

El modo flash usa el flash de un dispositivo. Para configurar este modo, usa la clase FlashControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad FlashControl.Supported. Si lo admite, puedes usar el modo flash en una aplicación fotográfica en condiciones de baja iluminación o para RedEyeReduction.

Balance de blancos

El balance de blancos otorga a la aplicación un control adicional sobre la configuración del balance de blancos de un dispositivo. Para configurar estos niveles, usa la clase WhiteBalanceControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad WhiteBalanceControl.Supported. Si lo admite, puedes usar uno de los valores de ColorTemperaturePreset mediante una llamada a SetPresetAsync. También puedes llamar a SetValueAsync para establecer un Value específico entre Min y Max.

Modo de exposición

El modo de exposición otorga a la aplicación un control adicional sobre la configuración de la exposición en un dispositivo. Para configurar este modo, usa la clase ExposureControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad ExposureControl.Supported. Si lo admite, la aplicación puede configurar los valores de exposición mediante una llamada a SetValueAsync. Para activar la exposición automática, llama a SetAutoAsync.

Modo de compensación de la exposición

El modo de compensación de la exposición concede a la aplicación el control sobre los niveles de exposición de las fotos capturadas. Para configurar este modo, usa la clase ExposureCompensationControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad ExposureCompensationControl.Supported. Si lo admite, la aplicación puede configurar los valores de exposición mediante una llamada a SetValueAsync.

Modo de enfoque

El modo de enfoque concede a la aplicación un control adicional sobre la configuración de enfoque en un dispositivo. Para configurar este modo, usa la clase FocusControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad FocusControl.Supported. Si lo admite, puedes usar uno de los valores de FocusPreset mediante una llamada a SetPresetAsync. También puedes llamar a SetValueAsync para establecer un Value específico entre Min y Max.

Modo ISO

El modo ISO permite a la aplicación administrar la configuración de sensibilidad ISO de un dispositivo. En condiciones de baja iluminación, es posible que no te importe tener un mayor nivel de ruido, con tal de lograr un mayor brillo general. El control de velocidad ISO permite a la aplicación ajustar este equilibrio entre ruido y brillo. Para configurar este modo, usa la clase IsoSpeedControl, a la que puedes acceder desde la propiedad MediaCapture.VideoDeviceController.

Para averiguar si un dispositivo admite este control, comprueba la propiedad IsoSpeedControl.Supported. Si lo hace, usa SetPresetAsync para establecer el nivel ISO en uno de los valores IsoSpeedPreset. SupportedPresets enumera los valores preestablecidos que admite el dispositivo.

Región de interés

Región de interés permite a la aplicación especificar RegionOfInterest en una vista previa. Para configurar este valor, usa la clase RegionsOfInterestControl, a la que puedes acceder desde MediaCapture.VideoDeviceController.

Este valor te permite especificar el área de vista previa para calcular cosas como el enfoque y los niveles de exposición. Región de interés permite escenarios como "pulsar para enfocar".

Campo de visión

Campo de visión permite que la aplicación calcule el campo de visión y el ángulo de la cámara con las opciones de configuración MediaCaptureSettings.PitchOffsetDegrees, MediaCaptureSettings.Horizontal35mmEquivalentFocalLength y MediaCaptureSettings.Vertical35mmEquivalentFocalLength.

Hacer fotos durante la grabación de vídeo

Tu aplicación puede comprobar la configuración de MediaCaptureSettings.ConcurrentRecordAndPhotoSupported para saber si el dispositivo permite hacer fotos durante la grabación de vídeo.

Determinar si se necesita cámara para reproducir sonido

La configuración MediaCaptureSettings.CameraSoundRequiredForRegion indica si es necesario que el sistema operativo emita un sonido cuando la cámara hace una foto. Tu aplicación puede usar esta información para decidir si debe reproducirse un sonido.

Optimización del dispositivo de captura

La propiedad VideoDeviceController.PrimaryUse indica si el dispositivo de captura se está usando principalmente para hacer fotos o grabar vídeos. Esto permite al sistema optimizar el rendimiento y la calidad.

Grabar AVI y WAV sin comprimir

Tu aplicación puede grabar la secuencia de audio sin comprimir desde el micrófono si se establece MediaCaptureInitializationSettings.AudioProcessing en Raw.

Detección de efectos de audio

Tu aplicación puede detectar la cadena de procesamiento de audio en un extremo. Puedes usar esta información para configurar el procesamiento de audio llevado a cabo en la aplicación. El espacio de nombres Windows.Media.Effects contiene las clases AudioEffect, AudioCaptureEffectsManager, AudioEffectsManager y AudioRenderEffectsManager.

Para crear un objeto AudioCaptureEffectsManager, llama a AudioEffectsManager.CreateAudioCaptureEffectsManager. Para crear un objeto AudioRenderEffectsManager, llama a AudioEffectsManager.CreateAudioRenderEffectsManager.

Actualizaciones en MediaElement de XAML

[Obtén la muestra de la reproducción de multimedia de XAML ahora.]

El control MediaElement se ha ampliado para permitir controles de transporte integrados y la representación en pantalla completa.

La propiedad MediaElement.AreTransportControlsEnabled habilita o deshabilita los controles de transporte integrados, de forma que ya no es necesario que conectes tus propios controles para realizar acciones como reproducir, detener, pausar o arrastrar el cabezal de reproducción. Esta API funciona como la propiedad controls de los elementos video y audio de HTML5.

La propiedad MediaElement.IsFullWindow habilita o deshabilita la representación en pantalla completa.

Aquí tienes código que muestra cómo habilitar los controles de transporte integrados.

<MediaElement Name="media" 
              Source="testVideo.mp4" 
              AreTransportControlsEnabled="True" />
MediaElement media = new MediaElement();
media.AreTransportControlsEnabled = true;

Y aquí tienes código que muestra cómo habilitar la representación de vídeo en pantalla completa.

<MediaElement Name="media"
              Source="testVideo.mp4" 
              IsFullWindow="True" />
MediaElement media = new MediaElement();
media.IsFullWindow = true;

Reproducción de vídeo y audio de HTML5

[Obtén la muestra de reproducción de multimedia HTML ahora.]

Windows 8.1 presenta varias actualizaciones para la reproducción multimedia de audio y vídeo, entre las que se incluyen la compatibilidad con Media Source Extensions (MSE) para HTML5 de World Wide Web Consortium (W3C), la compatibilidad con Encrypted Media Extensions (EME) para HTML5 de W3C, y actualizaciones para el control XAML MediaElement.

Media Source Extensions (MSE) para vídeo y audio en HTML5.

Media Source Extensions (MSE) para HTML5 es un estándar de W3C que extiende los elementos video y audio para permitir cambiar dinámicamente la secuencia multimedia sin usar los complementos. Esto permite escenarios como el streaming de multimedia adaptable, el streaming en vivo, la unión de vídeos y la edición de vídeo.

Las soluciones de streaming adaptable personalizado se pueden compilar en MSE. Las soluciones de streaming adaptable cambian dinámicamente la velocidad de bits de la secuencia multimedia para poder ofrecer una experiencia de streaming de calidad óptima. Intentan determinar la velocidad de bits óptima en función de las restricciones, como el ancho de banda de red y el uso de la CPU. Por ejemplo, si se reduce el ancho de banda de red, puedes usar MSE para disminuir la velocidad de bits de la secuencia de vídeo. Esto reducirá la calidad de la imagen pero permitirá que el vídeo siga reproduciéndose sin interrupción.

Una de las cosas que te permite la unión dinámica de vídeos es insertar anuncios durante la reproducción de multimedia. Esto significa que ya no tendrás que insertar clips de anuncios en los archivos multimedia con antelación, sino que podrás insertar un clip en la secuencia multimedia durante su reproducción.

Estos son algunos de los elementos esenciales de la API de MSE.

API Descripción
MediaSource El objeto multimedia adjunto al elemento multimedia HTML. MediaSource contiene los datos multimedia especificados por uno o varios objetos SourceBuffer.
MediaSource.readyState Indica el estado actual de MediaSource y si está adjunto a un elemento multimedia.
SourceBuffer Búfer que se usa para retener los datos multimedia.
SourceBufferList Una colección de objetos SourceBuffer.
MediaSource.endOfStream Indica la causa de un fin de secuencia.
MediaSource.sourceBuffers La colección de objetos SourceBuffer que contiene los datos multimedia de MediaSource.
createObjectURL Crea una dirección URL al objeto MediaSource. MediaSource puede adjuntarse a video o audio estableciendo la propiedad src en esta dirección URL.

 

Encrypted Media Extensions (EME) para elementos de vídeo y audio en HTML5

Encrypted Media Extensions (EME) para HTML5 es un estándar de W3C que amplía los elementos video y audio para permitir contenido protegido por DRM sin necesidad de usar complementos. EME se admite en Internet Explorer 11 y en las aplicaciones de la Tienda Windows con JavaScript que se ejecutan en Windows 8.1.

Aquí tienes algunas de las principales API que se usan con EME.

API Descripción
MediaKeys Las claves usadas para descifrar y cifrar los datos multimedia.
MediaKeySession La sesión de reproducción a la que están asociadas las claves.
MediaKeys.createSession Crea el MediaKeySession asociado a MediaKeys.
keySystem Atributo en el elemento multimedia que especifica el sistema de claves. El sistema de claves identifica el proveedor de protección de contenido o el mecanismo de descifrado.
MediaKeyError Especifica los tipos de errores asociados a MediaKeys.
MediaKeyMessageEvent Especifica los tipos de eventos relacionados con MediaKeys.

 

Actualizaciones en la característica Reproducir en

[Obtén muestras de Reproducir en y SystemMediaTransportControls ahora.]

Windows 8.1 presenta varias actualizaciones para mejorar la experiencia de Reproducir en.

Iniciar mediante programación la interfaz de usuario de Reproducir en

Las nuevas instrucciones para la interfaz de usuario de Windows 8.1 permiten a los desarrolladores de aplicaciones incluir un botón dentro de la aplicación, mediante un glifo estándar de Reproducir en, que sea capaz de mostrar mediante programación el control flotante de Reproducir en sin necesidad de pedir al usuario que deslice rápidamente sobre el acceso a Dispositivos para mostrar la interfaz de usuario. Usa ShowPlayToUI para mostrar el control flotante.

Aquí tienes código que muestra cómo mostrar la interfaz de usuario de Reproducir en.

private void showPlayTo() {
    Windows.Media.PlayTo.PlayToManager.ShowPlayToUI();
}
Private Sub showPlayTo()
    Windows.Media.PlayTo.PlayToManager.ShowPlayToUI()
End Sub
function showPlayTo() {
    Windows.Media.PlayTo.PlayToManager.showPlayToUI();
}

Reproducir en por referencia

Reproducir en por referencia permite a las páginas web y a las aplicaciones de la Tienda Windows reproducir contenido protegido por DRM. La aplicación especifica un identificador uniforme de recursos (URI) preferido que se enviará al dispositivo de destino de Reproducir en. Este identificador URI puede apuntar a un servidor multimedia en la nube. Si el preferredSourceUri está presente, el dispositivo de destino de Reproducir en puede reproducir en streaming directamente el contenido de la nube y ese contenido puede estar protegido por DRM. (Por el contrario, el contenido reproducido en streaming desde el equipo con Windows 8.1 debe estar desprotegido.)

Aquí tienes código que muestra cómo configurar Reproducir en por referencia.

// video is a MediaElement defined in XAML.
using Windows.Foundation;

video.Source = new Uri("https://www.contoso.com/videos/video.mp4"); 
video.PlayToSource.PreferredSourceUri = 
   new Uri("https://www.contoso.com/catalogid=1234"); 
<video src="https://www.contoso.com/videos/video.mp4" 
   x-ms-playToPreferredSourceUri="https://www.contoso.com/catalogid=1234" /> 
var video = document.createElement('video'); 
document.body.appendChild(video); 

video.src = "https://www.contoso.com/videos/video.mp4"; 
video.msPlayToPreferredSourceUri = "https://www.contoso.com/catalogid=1234"; 
auto video = ref new Windows::UI::Xaml::Controls::MediaElement(); 

video->Source = 
   ref new Windows::Foundation::Uri("https://www.contoso.com/videos/video.mp4"); 

video->PlaytoSource->PreferredSourceUri = 
   ref new Windows::Foundation::Uri("https://www.contoso.com/catalogid=1234"); 

Compatibilidad con audio y vídeo en Adobe Flash

La característica Reproducir en ahora admite la reproducción de audio y vídeo desprotegido en Flash desde Internet Explorer en la nueva interfaz de usuario de Windows desde un receptor de multimedia digital (DMR).

Compatibilidad con MSE

MSE es un nuevo estándar de W3C que será la base del envío de vídeos de calidad superior y con longitud de largometraje, con solo usar un explorador web y permitiendo así un ahorro energético. MSE no necesita el uso de complementos. Ahora, la característica Reproducir en admite la reproducción de contenido MSE desprotegido, procedente de aplicaciones de la Tienda Windows con JavaScript y sitios web de Internet Explorer, en la interfaz de usuario de Windows.

Vídeo en dispositivos de sólo audio

La interfaz de usuario de Reproducir en ya permite seleccionar un receptor de sólo audio como extremo remoto para el contenido de vídeo. El contenido del vídeo se separa y solo se envía al dispositivo el componente de audio.

Interfaz de usuario de controles de transporte de medios

En Windows 8.1, puedes usar la nueva clase SystemMediaTransportControls, en lugar de MediaControl.

La interfaz de usuario de controles de transporte de medios, que puedes ver al presionar las teclas de subir o bajar volumen, se puede usar ahora como control remoto para reproducir en un dispositivo de Reproducir en.

Los controles de transporte se pueden mostrar y usar para controlar la reproducción local o remota mientras la aplicación de origen se encuentra en segundo plano o mientras la pantalla del dispositivo está bloqueada. Todas las aplicaciones de la Tienda Windows presentan una implementación predeterminada, que incluye:

  • conexión de controles de transporte básicos, como reproducir, pausar y buscar;

  • el nombre de la aplicación en el lugar del título de la canción;

  • el icono de la aplicación en el lugar de la carátula del álbum.

Para mejorar la implementación predeterminada de tu aplicación, puedes:

  • conectar controles de transporte avanzados, como la funcionalidad de siguiente pista y pista anterior;

  • proporcionar el título de la canción;

  • proporcionar la carátula del álbum;

  • proporcionar el título del álbum.

Actualizaciones en la interfaz de usuario del acceso a Dispositivos

El acceso a Dispositivos ahora se organiza jerárquicamente y clasifica los dispositivos en estas categorías:

  • reproducción;

  • impresión;

  • proyecto;

  • tocar y enviar (si el hardware del dispositivo lo admite).

De este modo, se crea menos confusión en el usuario sobre lo que puede esperar encontrar en el acceso a Dispositivos. Estas secciones seguirán mostrándose aunque no haya dispositivos disponibles en ese momento.

Persistencia del receptor de multimedia digital

En el acceso a Dispositivos se resaltará el último receptor de multimedia digital que se haya seleccionado, así como su estado de conexión.

Mejora del flujo de conexión/desconexión y notificación de errores

Ahora, la interfaz de usuario de Reproducir en admite un flujo mejorado de conexión y desconexión.

Mientras se establece una conexión de Reproducir en con un dispositivo, una nueva interfaz de usuario muestra el mensaje "Conectando" y el control flotante de Reproducir en permanece visible hasta que se completa la conexión. Si se produce un error en la conexión, se notifica el error de conexión a la aplicación de origen.

Se ha quitado el botón Desconectar. En su lugar, para finalizar la reproducción remota y reanudar la reproducción localmente, los usuarios tienen que seleccionar ahora Este equipo, que figura en la lista junto a otros dispositivos en la interfaz de usuario de Reproducir en.