如何查看 VLC.MediaElement seek 是否完成?
How to check has VLC.MediaElement seek completed?
我没有在 VLC.MediaElement
中找到任何类似 SeekCompleted
的事件处理程序。我使用以下脏代码检查搜索是否已完成。有没有更好的方法来做到这一点?
//SET SEEK POSITION
VLCMediaPlayerElement.Position = Position;
//WAIT UNTIL SEEK HAS BEEN COMPLETED
while (VLCMediaPlayerElement.Position == Position)
{
await Task.Delay(1);
}
尝试来自 https://code.videolan.org/videolan/vlc-winrt/blob/master/modules/libvlcppcx/EventManagerCX.hpp 的 Buffering
and/or SeekableChanged
事件,如果您可以访问这些事件。
我得到一个很好的解决方案。可以使用 RegisterPropertyChangedCallback
创建处理程序。喜欢以下内容:
var Token = vlcMediaElement.RegisterPropertyChangedCallback(VLC.MediaElement.PositionProperty, PositionHasChanged_void);
在void PositionHasChanged_void()
中我可以检查位置是否正确。如果是这样,我可以像这样注销处理程序:
vlcMediaElement.UnregisterPropertyChangedCallback(VLC.MediaElement.PositionProperty,Token);
我没有在 VLC.MediaElement
中找到任何类似 SeekCompleted
的事件处理程序。我使用以下脏代码检查搜索是否已完成。有没有更好的方法来做到这一点?
//SET SEEK POSITION
VLCMediaPlayerElement.Position = Position;
//WAIT UNTIL SEEK HAS BEEN COMPLETED
while (VLCMediaPlayerElement.Position == Position)
{
await Task.Delay(1);
}
尝试来自 https://code.videolan.org/videolan/vlc-winrt/blob/master/modules/libvlcppcx/EventManagerCX.hpp 的 Buffering
and/or SeekableChanged
事件,如果您可以访问这些事件。
我得到一个很好的解决方案。可以使用 RegisterPropertyChangedCallback
创建处理程序。喜欢以下内容:
var Token = vlcMediaElement.RegisterPropertyChangedCallback(VLC.MediaElement.PositionProperty, PositionHasChanged_void);
在void PositionHasChanged_void()
中我可以检查位置是否正确。如果是这样,我可以像这样注销处理程序:
vlcMediaElement.UnregisterPropertyChangedCallback(VLC.MediaElement.PositionProperty,Token);