【问题标题】:How to check has VLC.MediaElement seek completed?如何检查 VLC.MediaElement 搜索是否完成?
【发布时间】:2018-10-29 02:43:27
【问题描述】:

我没有在VLC.MediaElement 中找到像SeekCompleted 这样的事件处理程序。我使用以下脏代码检查搜索是否已完成。有没有更好的方法来做到这一点?

//SET SEEK POSITION
VLCMediaPlayerElement.Position = Position;

//WAIT UNTIL SEEK HAS BEEN COMPLETED
while (VLCMediaPlayerElement.Position == Position)
    {
        await Task.Delay(1);
    } 

【问题讨论】:

  • 这看起来像是一个第三方库,不是来自 Microsoft 或 VLC 团队,您应该提供库的下载链接、nuget 包名称或 GitHub 存储库。
  • VLC.MediaElement 使用 libvlcx 这是 VideoLAN 官方 C++/CX libvlc 包装器

标签: uwp event-handling mediaelement libvlc seek


【解决方案1】:

如果您可以访问这些,请尝试来自https://code.videolan.org/videolan/vlc-winrt/blob/master/modules/libvlcppcx/EventManagerCX.hppBuffering 和/或SeekableChanged 事件。

【讨论】:

    【解决方案2】:

    我得到了一个很好的解决方案。可以使用RegisterPropertyChangedCallback 来创建处理程序。如下:

    var Token = vlcMediaElement.RegisterPropertyChangedCallback(VLC.MediaElement.PositionProperty, PositionHasChanged_void);
    

    void PositionHasChanged_void() 我可以检查位置是否正确。如果是这样,我可以像这样取消注册处理程序:

    vlcMediaElement.UnregisterPropertyChangedCallback(VLC.MediaElement.PositionProperty,Token); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多