CefSharp检测WebM视频结束

时间:2020-06-25 11:10:35

标签: c# cefsharp chromium-embedded

我有一个使用cefsharp v79.1.360的WPF C#应用程序。 该应用程序很高兴在浏览器中播放单个本地webm文件。

现在,我想将本地文件名的字符串传递给应用程序,并依次播放它们。因此,当一个webm完成播放时,将依次播放下一个。页面中没有其他内容,只有webm。

我的第一个想法是检测当前webm何时完成,然后加载下一个文件。我没有看到任何引发事件或处理程序可以为我执行此操作。 我将FrameLoadEnd处理程序用于其他目的,但是它仅在webm完成加载时才触发,而不是在播放完成时触发。

有人知道检测webm视频的结尾是否可能吗?

我的另一个想法是将每个webm加载到流中并播放整个批处理。 出于用户体验的目的,我认为最好依次播放每个人。

谢谢

1 个答案:

答案 0 :(得分:0)

确定解决该问题的最佳方法是创建一个HTML页面,该页面将接受带分隔符的视频位置字符串。它会处理列表中的各个循环,并逐一播放。它所要做的就是在触发onended事件并调用下面的loadPlaylist函数时更改video标签的src。

C#应用程序通过javascript调用将播放列表传递给html:

Browser.FrameLoadEnd += (sender, args) =>
{
     //Wait for the Main Frame to finish loading
     if (args.Frame.IsMain)
     {
         var playlist = navigationContext.Parameters[NavigationParameterKeys.WebAddress].ToString();
         args.Frame.ExecuteJavaScriptAsync("loadPlaylist('" + playlist +"');");
      }
};