【问题标题】:UWP Windows.Media.Playback - Stop/Unload ClipUWP Windows.Media.Playback - 停止/卸载剪辑
【发布时间】:2017-02-01 10:44:11
【问题描述】:

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

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

任何建议将不胜感激。

【问题讨论】:

  • 有什么更新吗?解决了吗?
  • 我已尝试按照您的建议使用 MediaPlayerElement,但它也不会变成黑色,而是倒退到视频的第一帧并保持在那里。我想要变黑的原因是当新视频开始时我在视频顶部隐藏了一个图层(例如 ajpeg)。媒体播放器对象似乎有一些小问题,我试图绕过它报告它已开始播放新视频文件的地方(所以我然后根据该事件隐藏 jpeg 层)但我仍然得到一个闪光显示新视频文件之前的旧视频文件
  • 我建议使用 MediaElement 而不是 MediaPlayerElement。请查看我的回复。
  • 对不起,我写的是 MediaPlayerElement 而不是上面的 MediaElement。以上调查结果基于您的建议。

标签: c# uwp media-player


【解决方案1】:

我最近遇到了一个相关问题,归结为从 MediaPlayerElement 卸载媒体。

如果您在播放处于活动状态时离开页面,MediaPlayerElement 不会暂停或卸载正在进行的播放,因此用户将继续听到音频。如果您重新打开播放器的页面,将创建一个播放器控件的新实例,并且用户可能会同时听到多个音轨(尽管这需要不同的媒体源)。因此,必须在播放器的Unloaded 事件处理程序、页面Unloaded 处理程序或OnNavigatingFrom/OnNavigatedFrom 覆盖等位置卸载媒体。

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

MyMediaPlayerElement.MediaPlayer.Pause();
MyMediaPlayerElement.Source = null;

实际上,一个空赋值行作为停止和卸载工作得很好,但是从现在(2018 年 3 月 19 日)开始,MS 文档似乎没有涵盖如何使源无效,我更喜欢在这里也保留对 Pause() 的其他不必要的调用。

【讨论】:

    【解决方案2】:

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

    如您所知,MediaPlayerElement 默认没有停止方法。由于MediaPlayerElement 是1607 版的新版本,因此对于早期版本的Windows 10,我们使用MediaElement 代替,因此您可以简单地使用MediaElement 代替。 MediaElementStop 方法,在你调用 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>
    

    后面的代码:

    private void btnstop_Click(object sender, RoutedEventArgs e)
    {
        mediaelement.Stop();             
    }
    

    【讨论】:

      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多