Multimídia

Desenvolva um aplicativo pronto para ajudar os usuários a criar e reproduzir empolgantes experiências de mídia. Agora isso é mais fácil de fazer no Windows 8.1, com novas propriedades para capturar mídia em diferentes ambientes, uma maneira simples de adicionar controles de reprodução para aplicativos que usam XAML (Linguagem de Marcação de Aplicativo Extensível) e suporte nativo para MSE (Media Source Extensions) para reprodução de HTML5.

Atualizado no Windows 8.1

  • Recurso de processamento de vídeo
  • Recurso de captura de áudio e vídeo
  • MediaElement XAML
  • Reprodução de vídeo e áudio HTML5
  • Recurso Reproduzir em

Atualizações nos recursos de processamento de vídeo

[Obtenha o Media Hub e o Exemplo de MediaStreamSource agora.]

O Windows 8.1 introduz algumas novas atualizações e suporte para formatos de vídeo, codecs e processamento.

Suporte para CFF

O Microsoft Media Foundation adicionou suporte a CFF (Common File Format) para suas implementações de MP4/fMP4. CFF é um formato de contêiner de áudio/vídeo baseado no Formato de Arquivo de Mídia Base ISO.

Novo modo XVP

O XVP (Transcode Video Processor) do Media Foundation adicionou o modo MrfCrf444, que sempre é executado no software e não usa a aceleração de hardware DXVA (DirectX Vídeo Acceleration). Isso garante resultados consistentes em todas as plataformas, independentemente do hardware subjacente. Como o modo MrfCrf444 é executado inteiramente em software, a operação de transcodificação pode demorar um pouco mais e usar mais energia. Esse novo modo força o uso de filtros maiores, usa precisão total para as conversões de cores, prefere formatos de cor de alta qualidade e habilita um desenlaçador de alta qualidade.

Você pode usar essa opção em seu aplicativo definindo MediaTrancoder.VideoProcessingAlgorithm como 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); 

Suporte para YUV de intervalo estendido no Media Foundation

No Windows 8, o pipeline de mídia do Media Foundation usava como padrão o intervalo YUV de oscilação de estúdio [Y: 16-235] e não fornecia a capacidade de sinalizar se a entrada estava no intervalo estendido YUV [Y: 0-255]. Agora o pipeline do Media Foundation tem a capacidade de sinalizar o intervalo estendido para o hardware de GPU (unidade de processamento gráfico). Isso faz com que todo o pipeline do Media Foundation, inclusive o decodificador MJPEG, tenha reconhecimento de intervalo estendido.

O atributo MF_MT_VIDEO_NOMINAL_RANGE é usado para especificar o intervalo de estúdio ou o intervalo estendido YUV para o conteúdo.

Origem de Fluxo de Mídia

O Windows 8.1 introduz uma nova origem de mídia genérica para aplicativos da Windows Store, chamada MSS (Origem de Fluxo de Mídia). As APIs para essa tecnologia estão no namespace Windows.Media.Core, e a classe de origem de mídia-principal é MediaStreamSource. A MSS habilita os aplicativos a enviar amostras de áudio e vídeo compactadas e descompactadas ao pipeline de mídia para reprodução, transcodificação e streaming. Amostras de mídia podem ser geradas dinamicamente pelo aplicativo ou ser "desmultiplexadas" de um fluxo ou de arquivos. Essa flexibilidade habilita os aplicativos a ampliar mais facilmente o suporte da plataforma para novos formatos de mídia ou resolver problemas complexos, como streaming adaptável ou implementação de uma origem de mídia personalizada em código gerenciado.

A API MediaStreamSource é muito semelhante às APIs do Microsoft Silverlight com o mesmo nome. Assim, os desenvolvedores que estão familiarizados com as versões do Silverlight dessas APIs podem tirar proveito de seus conhecimentos para criar aplicativos da Windows Store usando MSS.

A MSS pode ser usado com objetos audio e video em aplicativos da Windows Store usando JavaScript, objetos MediaElement em aplicativos da Windows Store usando C++, C# ou Visual Basic e o MediaTranscoder.

Aqui estão algumas das principais APIs da MSS. A ordem reflete o fluxo básico de como funciona a MSS. Você observará que o MediaStreamSource envia objetos de solicitação ao aplicativo por meio de argumentos de evento. Esses objetos de solicitação habilitam o aplicativo a interagir com o MediaStreamSource e passar dados de volta para ele.

API Descrição
MediaStreamSource Representa uma origem de mídia que fornece amostras de mídia diretamente ao pipeline de mídia. O MediaStreamSource consome objetos MediaStreamSample que são fornecidos pelo aplicativo.
MediaStreamSample Representa um exemplo de mídia usado pelo MediaStreamSource.
MediaStreamSource.Starting (evento)

O MediaStreamSource usa esse evento para notificar o aplicativo de que está pronto para começar a processar dados de mídia.

MediaStreamSourceStartingRequest

Representa uma solicitação de MediaStreamSource indicando que está pronto para começar o processamento de dados de mídia.

Os aplicativos devem responder o mais rápido possível a essa solicitação, invocando SetActualStartPosition. Se um aplicativo precisa atrasar o processamento de dados de MediaStreamSource, ele poderá obter um adiamento assíncrono chamando MediaStreamSourceStartingRequest.GetDeferral. Quando o aplicativo está pronto para que MediaStreamSource seja iniciado, ele chama Complete no objeto de adiamento.

A solicitação inicial é acessada por meio de MediaStreamSourceStartingEventArgs que são passados ao manipulador de eventos MediaStreamSource.Starting.

MediaStreamSource.SampleRequested (evento)

O MediaStreamSource usa esse evento para notificar o aplicativo de que está pronto para um MediaStreamSample.

Os aplicativos são obrigados a registrar um manipulador para esse evento.

MediaStreamSourceSampleRequest

Representa uma solicitação do MediaStreamSource para um novo exemplo de mídia. A definição da propriedade Sample para o novo MediaStreamSample dispara o MediaStreamSource para recuperar o exemplo de mídia e continuar a processar os dados de mídia.

Os aplicativos devem responder o mais rápido possível a essa solicitação. Se um aplicativo precisar de tempo antes de enviar o MediaStreamSample, ele poderá obter um adiamento assíncrono chamando MediaStreamSourceSampleRequest.GetDeferral. Quando o aplicativo conclui o adiamento, ele chama Complete no objeto de adiamento.

A solicitação de amostra é acessada por meio dos MediaStreamSourceSampleRequestedEventArgs que são passados ao manipulador de eventos MediaStreamSource.SampleRequest.

O aplicativo indica que chegou ao fim do fluxo respondendo a um MediaStreamSourceSampleRequest sem fornecer um MediaStreamSample ou atribuindo a propriedade MediaStreamSourceSampleRequest.Sample a null.

MediaStreamSource.Closed (evento)

O MediaStreamSource usa esse evento para notificar o aplicativo de que ele foi desligado.

MediaStreamSourceClosedRequest

Representa uma solicitação do MediaStreamSource indicando que ele foi fechado.

A solicitação de fechamento é acessada por meio dos MediaStreamSourceClosedEventArgs que são passados ao manipulador de eventos MediaStreamSource.Closed.

MediaElement.SetMediaStreamSource Define a origem do MediaElement para um MediaStreamSource.

 

Obtenha o Exemplo de MediaStreamSource para ter um exemplo detalhado do uso de MSS.

Atualizações de captura de áudio e vídeo

[Obtenha os exemplos de Captura de Mídia e Descoberta de efeitos de áudio agora.]

O Windows 8.1 introduz uma série de atualizações de recursos para captura de áudio e vídeo.

Modo de sequência de fotos

O modo de sequência de fotos tira uma sequência contínua de fotos. Você configura esse modo usando a classe LowLagPhotoSequenceControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Use a propriedade LowLagPhotoSequenceControl.Supported para verificar se um dispositivo dá suporte ao modo de sequência de fotos.

Um cenário-chave para o modo de sequência de fotos é obter fotos no passado—ou seja, antes que o usuário tire uma foto. Você pode usar PhotoCapturedEventArgs.CaptureTimeOffset para verificar se um quadro estava no futuro ou no passado. Um valor maior que 0 indica o futuro e um valor menor que 0 indica o passado.

Para iniciar esse modo, chame MediaCapture.PrepareLowLagPhotoSequenceCaptureAsync. Para iniciar a captura de fotos, chame StartAsync. Seu aplicativo continuará a receber fotos do dispositivo até que a operação seja interrompida. Para interromper a captura de fotos, chame StopAsync.

Se o aplicativo quiser definir quantos quadros obtém por segundo, ele poderá usar LowLagPhotoSequence.PhotosPerSecondLimit. Isso pode ser útil em situações em que o sensor no dispositivo pode conter 30 quadros por segundo (fps), mas a aplicativo precisa apenas de 4 fps.

Suporte a miniaturas

Há suporte para miniaturas para fotos individuais e para operações de sequências de fotos por meio das classes LowLagPhotoControl e LowLagPhotoSequenceControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para habilitar as miniaturas, defina a propriedade ThumbnailEnabled como true. Você pode definir o tamanho de miniatura desejado usando DesiredThumbnailSize e definir o formato com ThumbnailFormat.

Modo de Cena

O Modo de Cena ajusta o pós-processamento de quadros capturados para corresponder melhor à cena que está sendo gravada. Você configura esse modo usando SceneModeControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

A propriedade SupportedModes indica que um dispositivo dá suporte a Modos de Cena (como Snow, Night e Sport). Para iniciar esse modo, chame SceneModeControl.SetValueAsync.

Modo de Lanterna

O Modo de Lanterna usa o LED de lanterna em um dispositivo. Você configura esse modo usando TorchControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade TorchControl.Supported. Se houver suporte, você poderá usar o Modo de Lanterna em aplicativos de captura ou em aplicativos que não sejam de captura para realizar ações como iluminar uma sala.

Modo de Flash

Modo de Flash usa o flash em um dispositivo. Você configura esse modo usando FlashControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade FlashControl.Supported. Se houver suporte, você poderá usar o Modo de Flash em um aplicativo de foto para lidar com condições de pouca luz ou para RedEyeReduction.

Proporção de Branco

A Proporção de Branco dá ao seu aplicativo maior controle sobre as configurações de proporção de branco em um dispositivo Você pode configurar esses níveis usando WhiteBalanceControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade WhiteBalanceControl.Supported. Se houver suporte, você poderá usar um dos valores ColorTemperaturePreset chamando SetPresetAsync. Ou então, chame SetValueAsync para definir um Value específico entre Min e Max.

Modo de Exposição

O Modo de Exposição dá ao seu aplicativo maior controle sobre as configurações de exposição em um dispositivo. Você configura esse modo usando ExposureControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade ExposureControl.Supported. Se houver suporte, seu aplicativo poderá definir os valores de exposição chamando SetValueAsync. Para ligar a exposição automática, chame SetAutoAsync.

Modo de Compensação de Exposição

O Modo de Compensação de Exposição dá a seu aplicativo controle sobre os níveis de exposição das fotos capturadas. Você configura esse modo usando ExposureCompensationControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade ExposureCompensationControl.Supported. Se houver suporte, seu aplicativo poderá definir os valores de exposição chamando SetValueAsync.

Modo de Foco

O Modo de Foco dá ao seu aplicativo controle adicional sobre as configurações de foco em um dispositivo. Você configura esse modo usando FocusControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade FocusControl.Supported. Se houver suporte, você poderá usar um dos valores FocusPreset chamando SetPresetAsync. Ou então, chame SetValueAsync para definir um Value específico entre Min e Max.

Modo ISO

O Modo ISO permite que seu aplicativo gerencie as configurações de velocidade ISO em um dispositivo. Em condições de pouca luz, você pode preferir um nível de ruído mais alto em troca de maior brilho geral. O controle de velocidade ISO permite que seu aplicativo ajuste essa compensação. Você configura esse modo usando IsoSpeedControl, que você acessa por meio da propriedade MediaCapture.VideoDeviceController.

Para saber se um dispositivo dá suporte a esse controle, verifique a propriedade IsoSpeedControl.Supported. Em caso afirmativo, use SetPresetAsync para definir o nível ISO para um dos valores IsoSpeedPreset. SupportedPresets lista os valores predefinidos aos quais o dispositivo dá suporte.

Região de Interesse

Região de Interesse permite que seu aplicativo especifique o RegionOfInterest em uma visualização. Você pode definir essa configuração usando RegionsOfInterestControl, que você acessa por meio de MediaCapture.VideoDeviceController.

Use essa configuração para especificar a área de visualização para a qual calcular itens como foco e níveis de exposição. Região de Interesse habilita cenários como "tocar para focalizar".

Campo de Perspectiva

Campo de Perspectiva permite que o aplicativo calcule o campo de perspectiva e o ângulo da câmera com as e configurações MediaCaptureSettings.PitchOffsetDegrees, MediaCaptureSettings.Horizontal35mmEquivalentFocalLength e MediaCaptureSettings.Vertical35mmEquivalentFocalLength.

Tirar fotos durante a gravação de vídeo

Seu aplicativo pode verificar as configurações MediaCaptureSettings.ConcurrentRecordAndPhotoSupported para verificar se o dispositivo permite tirar uma foto durante a gravação de vídeo.

Determinar se a câmera deve reproduzir um som

definiçãoMediaCaptureSettings.CameraSoundRequiredForRegion indica se o sistema operacional deve reproduzir um som quando a câmera tira uma foto. Seu aplicativo pode usar essas informações para decidir se um som deve ser reproduzido.

Otimização de dispositivo de captura

A propriedade VideoDeviceController.PrimaryUse indica se o dispositivo de captura está sendo usado principalmente para fotos ou vídeos. Isso habilita o sistema a otimizar o desempenho e a qualidade.

Gravar AVI e WAV descompactados

Seu aplicativo pode gravar o fluxo de áudio descompactado do microfone, definindo MediaCaptureInitializationSettings.AudioProcessing como Raw.

Descoberta de efeitos de áudio

Seu aplicativo pode descobrir a cadeia de processamento de áudio em um ponto de extremidade. Você pode usar essas informações para configurar o processamento de áudio que é realizado no aplicativo. O namespace Windows.Media.Effects contém as classes AudioEffect, AudioCaptureEffectsManager, AudioEffectsManager e AudioRenderEffectsManager.

Para criar um objeto AudioCaptureEffectsManager, chame AudioEffectsManager.CreateAudioCaptureEffectsManager. Para criar um objeto AudioRenderEffectsManager, chame AudioEffectsManager.CreateAudioRenderEffectsManager.

Atualizações de MediaElement XAML

[Obtenha o exemplo de reprodução de mídia XAML agora.]

O controle MediaElement foi estendido para dar suporte a controles internos de transporte e renderização de janela inteira

A propriedade MediaElement.AreTransportControlsEnabled habilita ou desabilita controles internos de transporte, assim, você não precisa mais ativar seus próprios botões para realizar ações como reproduzir, parar, pausar ou remover. Essa API funciona como a propriedade controls nos elementos HTML5 video e audio.

A propriedade MediaElement.IsFullWindow habilita ou desabilita a renderização de janela inteira.

A seguir está um exemplo de código que mostra como habilitar os controles de transporte internos.

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

E aqui está um código que mostra como habilitar a renderização de vídeo em janela inteira.

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

Reprodução de vídeo e áudio HTML5

[Obtenha o exemplo de reprodução de mídia HTML agora.]

O Windows 8.1 introduz várias atualizações para reprodução de mídia de áudio e vídeo, inclusive suporte para MSE (Extensões de Origem de Mídia) HTML5 do W3C (World Wide Web Consortium), suporte para EME (Extensões de Origem de Mídia) HTML5 do W3C e atualizações para o controle MediaElement XAML.

MSE (Extensões de Origem de Mídia) para vídeo e áudio HTML5.

MSE (Extensões de Origem de Mídia) para vídeo e áudio HTML5 é um padrão W3C que estende os elementos video e audio para habilitar a alteração dinâmica do fluxo de mídia sem o uso de plug-ins. Isso dá suporte a cenários como streaming de mídia adaptável, streaming ao vivo, união de vídeos e edição de vídeo.

Soluções de streaming personalizadas adaptáveis podem ser criadas em MSE. Soluções de streaming adaptáveis alteram dinamicamente a taxa de bits do fluxo de mídia para fornecer a melhor experiência de streaming de alta qualidade. Elas tentam determinar a taxa de bits ideal com base em restrições como largura de banda da rede e uso de CPU. Por exemplo, se a largura de banda da rede cair, você poderá usar a MSE para alternar o fluxo de vídeo para uma taxa de bits mais baixa. Isso reduziria a qualidade da imagem, mas habilitaria a reprodução do vídeo sem interrupção.

Uma das utilizações da união dinâmica de vídeos é inserir anúncios durante a reprodução de mídia. Isso significa que você não precisa colocar antecipadamente clipes de anúncios nos arquivos de mídia, mas, em vez disso, pode inserir um clipe durante a reprodução do fluxo de mídia.

Aqui estão alguns dos elementos mais importantes da API de MSE.

API Descrição
MediaSource O objeto de mídia, que está anexado ao elemento de mídia HTML. MediaSource contém os dados de mídia especificados por um ou mais objetos SourceBuffer.
MediaSource.readyState Indica o estado atual da MediaSource e se ela está anexada ao elemento de mídia.
SourceBuffer O buffer usado para armazenar os dados de mídia.
SourceBufferList Um conjunto de objetos SourceBuffer.
MediaSource.endOfStream Indica a causa do fim do fluxo.
MediaSource.sourceBuffers O conjunto de objetos SourceBuffer que contém os dados de mídia da MediaSource.
createObjectURL Cria uma URL para o objeto MediaSource. A MediaSource pode ser anexada ao video ou audio por meio da configuração da propriedade src nessa URL.

 

EME (Extensões de Mídia Criptografadas) para elementos de áudio e vídeo HTML5

EME (Extensões de Mídia Criptografadas) HTML5 é um padrão W3C que estende os elementos video e audio para habilitar conteúdo protegido por DRM (Gerenciamento de Direitos Digitais) sem o uso de plug-ins. O EME tem suporte no Internet Explorer 11 e em aplicativos da Windows Store que usam JavaScript e são executados no Windows 8.1.

Veja algumas das principais APIs usadas com EME:

API Descrição
MediaKeys As chaves usadas para descriptografar e criptografar os dados de mídia.
MediaKeySession A sessão de reprodução à qual as chaves estão associadas.
MediaKeys.createSession Cria a MediaKeySession associadas a MediaKeys.
keySystem Atributo no elemento de mídia que especifica o Sistema de Chaves. O Sistema de Chaves identifica o provedor de proteção de conteúdo ou o mecanismo de descriptografia.
MediaKeyError Especifica os tipos de erros associados às MediaKeys.
MediaKeyMessageEvent Especifica os tipos de eventos relacionados às MediaKeys.

 

Atualizações do recurso Reproduzir em

[Obtenha os exemplos de Reproduzir em Mídia e SystemMediaTransportControls agora.]

O Windows 8.1 inclui várias atualizações para melhorar a experiência de Reproduzir em.

Iniciar de forma programática a interface do usuário de Reproduzir em

As novas diretrizes da interface do usuário para o Windows 8.1 incentivam os desenvolvedores de aplicativos a fornecer um botão no aplicativo, usando um glifo padrão de Reproduzir em, para exibir de forma programática o submenu Reproduzir em e não exigir que o usuário ative a interface do usuário passando o dedo no botão Dispositivos. Use ShowPlayToUI para exibir o submenu.

A seguir está um código que mostra como exibir a interface do usuário de Reproduzir em.

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();
}

Referência de Reproduzir em

A referência de Reproduzir em habilita páginas da Web e aplicativos da Windows Store a reproduzir conteúdo protegido por DRM. O aplicativo especifica um URI (Uniform Resource Identifier) preferido que será enviado ao dispositivo de destino de Reproduzir em. Esse URI pode apontar para um servidor de mídia baseado na nuvem. Se o preferredSourceUri estiver presente, o dispositivo de destino de Reproduzir em poderá transmitir conteúdo diretamente da nuvem, e esse conteúdo poderá ser protegido por DRM. (Compare essa opção ao conteúdo de—streaming alternativo da máquina do Windows 8.1—em que o conteúdo não deve ser protegido.)

A seguir está um exemplo de código que mostra como configurar a referência de Reproduzir em.

// 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"); 

Suporte a áudio e vídeo Adobe Flash

Agora, Reproduzir em dá suporte à reprodução de áudio e vídeo flash não protegidos do Internet Explorer na nova interface do usuário do Windows em um DMR (Digital Media Receiver).

Suporte para Extensões de Origem de Mídia

MSE (Extensões de Origem de Mídia) é um novo padrão W3C que se tornará a base para fornecer vídeo premium de longa-duração e alta qualidade com economia de energia, usando apenas um navegador da Web. O MSE não requer um plug-in. Agora, Reproduzir em dá suporte à reprodução de conteúdo MSE não protegido de aplicativos da Windows Store usando JavaScript e sites no Internet Explorer na interface do usuário do Windows.

Dispositivos somente de vídeo para áudio

Agora, a interface do usuário de Reproduzir em dá suporte à seleção de um receptor somente de áudio como um ponto de extremidade remoto para conteúdo de vídeo. O conteúdo de vídeo é desmixado e apenas o componente de áudio é enviado ao dispositivo.

Interface do usuário de controles de transporte de mídia

No Windows 8.1, você pode usar o novo SystemMediaTransportControls em vez da classe MediaControl.

A interface do usuário de controles de transporte de mídia, que é a interface do usuário que você vê ao pressionar o volume para cima ou para baixo, pode ser usada agora como um controle remoto para reprodução em um dispositivo de Reproduzir em.

Os controles de transporte podem ser exibidos e usados para controlar a reprodução local ou remota enquanto o aplicativo de origem está em segundo plano ou enquanto a tela do dispositivo está bloqueada. Todos os aplicativos da Windows Store obtêm uma implementação padrão, que inclui:

  • Conectar controles de transporte básicos, como reproduzir, pausar e buscar

  • O nome do aplicativo no lugar do título da música

  • O ícone do aplicativo no lugar da capa do álbum

Seu aplicativo pode melhorar a implementação padrão das seguintes maneiras:

  • Conectando controles de transporte avançados, como funcionalidade de faixa seguinte e faixa anterior

  • Fornecendo o título da música

  • Fornecendo a capa do álbum

  • Fornecendo o título do álbum

Atualizações na interface do usuário do botão Dispositivos

O botão Dispositivos agora está organizado hierarquicamente e coloca os dispositivos nestas categorias:

  • Reproduzir

  • Impressão

  • Projeto

  • Tocar e Enviar (se o hardware do dispositivo der suporte a essa opção)

Isso ajuda a reduzir a confusão para os usuários sobre o que é possível encontrar no botão Dispositivos. Mesmo quando não existirem dispositivos disponíveis atualmente, essas seções estarão visíveis.

Persistência de Receptor de Mídia Digital

O Receptor de Mídia Digital selecionado mais recentemente e seu status de conexão serão realçados no botão Dispositivos.

Fluxo de conexão/desconexão e relatórios de erros melhorados

Agora, a interface do usuário de Reproduzir em dá suporte a um melhor fluxo de conexão e desconexão.

Enquanto uma conexão de Reproduzir em está sendo estabelecida com um dispositivo, uma nova interface do usuário mostra a mensagem "Conectando" e o submenu de Reproduzir em permanece visível até que a conexão seja estabelecida. Se a conexão falhar, um erro de conexão será relatado ao aplicativo de origem.

O botão Desconectar foi removido. Em vez disso, para encerrar a reprodução remota e retomar a reprodução local, agora os usuários selecionam Este PC, que é listado ao lado de outros dispositivos na interface do usuário de Reproduzir em.