如果您想保留海报直到您单击播放按钮,您可以设置 PosterSource 并且不要首先将 Source 设置为 MediaPlayerElement。然后监听播放按钮的点击事件,当事件触发时,可以在该事件中设置Source并播放。
另外,通过测试,当你明确设置了 AutoPlay 并且没有设置 Source 时,播放按钮会被禁用。但是如果不设置自动播放,播放按钮就会启用,所以最好去掉这段代码AutoPlay="False"
。
如果要监听播放按钮的点击事件,可以获取MediaTransportControls的默认样式并订阅播放按钮的点击事件。您可以转到generic.xaml文件以获取 MediaTransportControls 的默认样式。在默认样式中,有一个名为PlayPauseButton的AppBarButton代表播放和暂停按钮,因此您可以在其中添加单击事件,并在触发事件时设置源,播放/暂停视频。
例如:
.xaml:
<Page.Resources>
<Style TargetType="MediaTransportControls" x:Key="MyStyle">
......
<Setter Property="Template">
......
<AppBarButton x:Name='PlayPauseButton' Style='{StaticResource AppBarButtonStyle}'
Click="PlayPauseButton_Click"
MediaTransportControlsHelper.DropoutOrder='23'>
<AppBarButton.Icon>
<SymbolIcon x:Name="PlayPauseSymbol" Symbol="Play" />
</AppBarButton.Icon>
</AppBarButton>
......
</Setter>
</Style>
</Page.Resources>
<MediaPlayerElement x:Name="mediaSimple" Width="400" PosterSource="Assets/3.jpg" AreTransportControlsEnabled="True">
<MediaPlayerElement.TransportControls>
<MediaTransportControls Style="{StaticResource MyStyle}"></MediaTransportControls>
</MediaPlayerElement.TransportControls>
</MediaPlayerElement>
。CS:
private void PlayPauseButton_Click(object sender, RoutedEventArgs e)
{
SymbolIcon symbol = (sender as AppBarButton).Icon as SymbolIcon;
if (symbol.Symbol == Symbol.Pause)
{
mediaSimple.MediaPlayer.Pause();
}
else
{
if (mediaSimple.Source == null)
{
mediaSimple.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/fishes.wmv"));
}
mediaSimple.MediaPlayer.Play();
}
}