我已将ActiveX VLC 插件合并到 WPF 应用程序中。VLC 插件工作正常。
AxVLCPlugin vlc = new AxVLCPlugin();
vlc.MediaPlayerEncounteredError += vlc_MediaPlayerEncounteredError;
vlc.MediaPlayerOpening += vlc_MediaPlayerOpening;
vlc.MediaPlayerBuffering += vlc_MediaPlayerBuffering;
vlc.MediaPlayerEndReached += vlc_MediaPlayerEndReached;
//
// Other code
// like windowsFormsHost1.Child = vlc; and etc
vlc.addTarget(videoURL, null, AXVLC.VLCPlaylistMode.VLCPlayListReplace, 1);
vlc.play();
但是有些 VLC 的所有事件根本不起作用。
我的意思是这些事件:
vlc.MediaPlayerEncounteredError += vlc_MediaPlayerEncounteredError;
vlc.MediaPlayerOpening += vlc_MediaPlayerOpening;
vlc.MediaPlayerBuffering += vlc_MediaPlayerBuffering;
vlc.MediaPlayerEndReached += vlc_MediaPlayerEndReached;
void vlc_MediaPlayerEndReached(object sender, EventArgs e)
{
Debug.WriteLine("[P] - StreamingVideo - END REACHED + " + DateTime.Now);
}
void vlc_MediaPlayerBuffering(object sender, DVLCEvents_MediaPlayerBufferingEvent e)
{
Debug.WriteLine("[P] - StreamingVideo - BUFFERING + " + DateTime.Now);
}
void vlc_MediaPlayerOpening(object sender, EventArgs e)
{
Debug.WriteLine("[P] - StreamingVideo - OPENING + " + DateTime.Now);
}
void vlc_MediaPlayerEncounteredError(object sender, EventArgs e)
{
Debug.WriteLine("[P] - StreamingVideo - ERROR + " + DateTime.Now);
}
他们没有开火。(当然,我在这些方法中设置了断点。)
我真正需要的是捕获流错误并再次重新应用videoURL。所以我正在试验一些事件,看看我可以使用哪些事件来实现这个目标。
任何线索为什么?
PS此链接也无助于VLC播放器事件捕获