Neste artigo vou apresentar o novo recurso MediaElement disponível a partir do Xamarin Forms 4.5. |
O recurso MediaElement é uma view que podemos usar para reproduzir vídeo e áudio.
A mídia compatível com a plataforma subjacente pode ser reproduzida a partir das seguintes fontes:
O MediaElement pode usar os controles de reprodução da plataforma, chamados de controles de transporte. No entanto, eles são desabilitados por padrão e podem ser substituídos por seus próprios controles de transporte.
Lembrando que este é um recurso experimental e para ser usado teremos que adicionar o código abaixo ás classes AppDelegate no iOS, e, MainActivity no Android, antes da chamada de Forms.Init:
global::Xamarin.Forms.Forms.SetFlags("Brush_Experimental");
|
public App()
{
Device.SetFlags(new string[] { "MediaElement_Experimental" });
InitializeComponent();
MainPage = new MainPage();
}
|
O MediaElement possui diversas propriedades. A seguir vou listar a seguir as principais:
Além disso a classe MediaElement também define quatro eventos:
Os 3 métodos principais são: Play(), Pause() e Stop().
Agora vamos ver como usar este recurso na prática.
Recursos usados:
Criando o projeto Xamarin Forms
Vamos criar um novo projeto Xamarin Forms no VS 2019 Community com o nome XF_MediaElement1.
Nota: Verifique se você precisa atualizar as versões do Xamarin Forms e do Xamarin.Essentials
Você pode ver como criar um projeto no Xamarin Forms neste link: Criar Projeto Xamarin Forms
Com o projeto criado precisamos incluir a flag 'MediaElement_Experimental' no projeto.
Podemos fazer isso no arquivo App.xaml.cs :
public App() { Device.SetFlags(new string[] { "MediaElement_Experimental" }); InitializeComponent(); MainPage = new MainPage();
}
|
Agora podemos usar o recurso em nosso projeto.
Executando uma mídia remota
No arquivo MainPage.xaml inclua o código abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XF_MediaElement1.MainPage">
<StackLayout>
<Frame BackgroundColor="Maroon" Padding="24" CornerRadius="0">
<Label Text="MediaElement" HorizontalTextAlignment="Center"
TextColor="White" FontSize="36"/>
</Frame>
<MediaElement Source="https://sec.ch9.ms/ecn/ch9/wp7.mp4"
ShowsPlaybackControls="True"
VerticalOptions="FillAndExpand">
</MediaElement>
</StackLayout>
</ContentPage>
|
Executando uma mídia local
Podemos reproduzir também uma mídia local a partir das seguintes fontes:
Observe as seguintes recomendações para usar o esquema "ms-appx" para a fonte local e os seguintes locais se estiver usando mídia local:
Exemplo:
<MediaElement Source="ms-appx:///Demo.mp4" ShowsPlaybackControls="True" />
|
Outra opção é usar
o MediaElement para reproduzir arquivos de mídia
que são copiados nas pastas de dados locais ou temporárias do aplicativo, usando
o esquema de URI ms-appdata: ///.
O exemplo a seguir mostra a propriedade Source
definida para um arquivo de mídia armazenado na pasta de dados local do
aplicativo:
<MediaElement Source = "ms-appdata: ///local/Demo.mp4" ShowsPlaybackControls = "True"/>
|
Em outro artigo voltamos ao assunto.
"Não vos
prendais a um jugo desigual com os infiéis; porque, que sociedade tem a justiça
com a injustiça? E que comunhão tem a luz com as trevas?"
2 Coríntios 6:14
Referências:
NET - Apresentando o padrão Model-View-ViewModel
Xamarin Forms - MVVM - Macoratti.net
NET - O padrão MVVM revisitado
Xamarin Forms - MVVM - A interface ICommand
Padrão de Projeto - Aprendendo o padrão MVVM .