C# UWP Windows.Media.Playback-停止/卸载剪辑

C# UWP Windows.Media.Playback-停止/卸载剪辑,c#,uwp,media-player,C#,Uwp,Media Player,我正在编写一个包含MediaPlayer对象的UWP应用程序。我想编程一个停止按钮,停止媒体并将媒体设置为黑色,但是除了加载一个短的“黑色”剪辑作为内部资源或通过合成器隐藏元素外,我找不到一种方法来完成 MediaPlayer没有停止功能,只有播放/暂停功能,此外,将媒体源设置为null只会暂停播放并冻结显示的最后一帧,而不会变为黑色 如有任何建议,将不胜感激 MediaPlayer没有停止功能,只有播放/暂停功能 正如您所知,默认情况下没有stop方法。由于mediaplayerement是1

我正在编写一个包含MediaPlayer对象的UWP应用程序。我想编程一个停止按钮,停止媒体并将媒体设置为黑色,但是除了加载一个短的“黑色”剪辑作为内部资源或通过合成器隐藏元素外,我找不到一种方法来完成

MediaPlayer没有停止功能,只有播放/暂停功能,此外,将媒体源设置为null只会暂停播放并冻结显示的最后一帧,而不会变为黑色

如有任何建议,将不胜感激

MediaPlayer没有停止功能,只有播放/暂停功能

正如您所知,默认情况下没有stop方法。由于
mediaplayerement
是1607版的最新版本,因此对于早期版本的Windows 10,我们使用
MediaElement
,因此您可以简单地使用
MediaElement
有一个方法,调用stop方法后,
MediaElement
将显示黑色,并将媒体设置为开始,这正是您想要的。代码如下:

 <MediaElement x:Name="mediaelement" AreTransportControlsEnabled="True" Height="400" Width="400" AutoPlay="True" Source="http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4"></MediaElement>
 <Button x:Name="btnstop" Click='btnstop_Click' Content="stop"></Button>

我最近遇到了一个相关的问题,归结起来就是从一个服务器上卸载媒体

如果在播放处于活动状态时导航离开某个页面,则不会暂停或卸载正在进行的播放,以便用户继续听到音频。如果重新打开播放器页面,将创建一个新的播放器控件实例,用户可能会同时听到多个音频曲目(尽管这需要不同的媒体源)。因此,在播放器的事件处理程序、页面
unload
handler或/overrides等位置卸载媒体非常重要

无论如何,下面的代码会停止并从中卸载视频/剪辑/媒体


事实上,空赋值行可以作为停止和卸载,但由于到目前为止(2018年3月19日),MS文档似乎没有涵盖取消源代码应该如何工作,我更喜欢在此处保留一个不必要的暂停()调用。

有任何更新吗?问题解决了吗?我试着按照你的建议使用MediaPlayerElement,但它也没有变为黑色,而是倒回到视频的第一帧并保持不变。我之所以想变成黑色,是因为当一个新的视频开始时,我在视频的顶部隐藏了一层(比如ajpeg)。媒体播放器对象似乎有一些小问题,我正在尝试解决它报告已开始播放新视频文件的地方(因此,我根据该事件隐藏jpeg层),但在显示新视频文件之前,我仍然会看到旧视频文件的闪光。我建议使用MediaElement而不是MediaPlayerElement。请检查我的回复。对不起,我在上面写的是MediaPlayerElement而不是MediaElement。以上发现是基于你的建议。
private void btnstop_Click(object sender, RoutedEventArgs e)
{
    mediaelement.Stop();             
}
MyMediaPlayerElement.MediaPlayer.Pause();
MyMediaPlayerElement.Source = null;