C# LibVLCSharp:MediaPlayer.TimeChanged-Event 的更新速度

C# LibVLCSharp: Update speed of MediaPlayer.TimeChanged-Event

有没有办法改变 LibVLCSharp MediaPlayer TimeChanged-Event 的更新速度?

我使用此事件来更新我的视频的剩余播放时间。但这对我的目的来说太慢了。我想每 10 毫秒更新一次剩余时间。这可能吗?

我的代码:


private void InitMediaPlayer()
{
    vlc = new LibVLC(true, "");
    videoClipMediaPlayer = new MediaPlayer(vlc);
    videoClipMediaPlayer.TimeChanged += MediaPlayerTimeChanged;
}


private void MediaPlayerTimeChanged(object sender, MediaPlayerTimeChangedEventArgs e)
{
    long RemainingTimeMS = videoClipMediaPlayer.Media.Duration - e.Time;
    RemainingPlayTime = new TimeSpan(0, 0, 0, 0, Convert.ToInt32(RemainingTimeMS)); 
    
    // this is only called every 250 milliseconds
}

不可能提高回调率,因为 libvlc 不允许您这样做。事件在播放线程上同步触发,回调时间过长会使视频卡顿。

相反,您可以拥有自己的计时器并插入视频时间,并在每次 TimeChanged 时重新同步计数器。您需要将视频的时间与当前计算机时间一起保存,并且在每个计时器的回调中,newVideoTime = lastVideoSyncTime + (now - lastSyncTime)