我正在编写一个包含MediaPlayer对象的UWP应用程序。我想编程一个停止按钮来停止媒体并将媒体设置为黑色,但是我找不到一种方法来做到这一点,除了加载一个简短的‘黑色’剪辑作为内部资产或通过合成器隐藏元素。
MediaPlayer不具有停止、仅播放/暂停的功能,此外,将媒体源设置为null只是暂停播放并在所示的最后一帧冻结,而不是下降到黑色。
任何建议都将不胜感激。
发布于 2018-03-19 22:45:23
我最近遇到了一个相关的问题,归根结底就是从MediaPlayerElement卸载媒体。
如果您在播放处于活动状态时离开页面,则MediaPlayerElement不会挂起或卸载正在进行的播放,因此用户将继续听到音频。如果您重新打开播放器页面,将会创建一个播放器控件的新实例,用户可能会同时听到多个音轨(尽管这需要不同的媒体源)。因此,必须在播放器的Unloaded事件处理程序、页面Unloaded处理程序或OnNavigatingFrom/OnNavigatedFrom覆盖等位置卸载媒体。
无论如何,下面的代码停止并从MediaPlayerElement卸载视频/剪辑/媒体。
MyMediaPlayerElement.MediaPlayer.Pause();
MyMediaPlayerElement.Source = null;实际上,null赋值行可以很好地作为stop-and-unload,但由于到目前为止(2018年3月19日),MS文档似乎没有介绍如何将源代码置为无效,我更喜欢在这里保留对Pause()的其他不必要的调用。
发布于 2017-02-07 16:20:53
MediaPlayer没有停止功能,只有播放/暂停功能
正如您所知道的,MediaPlayerElement在默认情况下没有stop方法。由于MediaPlayerElement是1607版本的新版本,因此对于早期版本的Windows10,我们使用的是MediaElement,因此您可以简单地使用MediaElement。MediaElement具有Stop方法,在您调用stop方法之后,MediaElement将显示为黑色,并将媒体设置为begin,这正是您想要的。代码如下:
<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>代码隐藏:
private void btnstop_Click(object sender, RoutedEventArgs e)
{
mediaelement.Stop();
}https://stackoverflow.com/questions/41977720
复制相似问题