用于跨平台视频应用的HTML5 / CSS3 / JS GUI

时间:2017-08-25 14:22:32

标签: html user-interface cross-platform libvlc

我想为播放视频文件的跨平台(Linux,Win)应用创建HTML5 / CSS3 / JS GUI。简单,对吧?

在过去的几周里,我花了很多时间寻找合适的解决方案,尝试了很多,此时,我正在拔头发。

我首先检查Electron,但不幸的是它本身并不支持所有视频格式(如MKV等)。所以我认为LibVLC可能是在这款应用中使用的好组件。但我无法与Electron合作。像WebChimera(VLCLib for Electron)这样的项目似乎已经死了。

我尝试的另一个角度是安装Visual Studio Code,运行C ++ Hello World测试(G ++编译,效果很好)然后尝试将CEF(编译后的二进制文件,似乎更容易?)放入我的项目。我的知识不足以让CEF在VSCode中运行得不幸(g ++很好,但这需要cmake?)

因此,我再次转向StackOverflow社区,询问一些指示并听取一些想法。也许还有其他角度。你会做什么?

  1. 桌面应用。需要在Windows和Linux上运行。
  2. 播放不同类型的视频文件(VLC满足所有需求)
  3. 使用HTML5 / CSS3 / JS作为GUI
  4. 编程语言不太重要,我可以写一些并快速学习其他语言。
  5. 我想我可能会使用C ++,CEF和LibVLC走上正轨。如果是这样,是否有人可以帮助我在Visual Studio代码中运行CEFSimple?我在Linux上开发。如果更好的话,我愿意尝试编辑/ IDE。

1 个答案:

答案 0 :(得分:0)

最后我安装了QT Creator和QT 5.6.2,并使用QWebEngineView作为中心窗口小部件。

使用..

QString appPath = qApp->applicationDirPath();    
view->setUrl( QUrl::fromLocalFile( appPath + "/GUI/index.html") );

我能够加载我的本地HTML文件并且可以正常工作。

QWebEngine不在QT Creator的小部件列表中,所以我发现我可以通过在主窗口标题中添加一个include来以编程方式创建它:..

#include <QWebEngineView>

然后在我的主窗口代码中写这个..

QWebEngineView *view = new QWebEngineView(this);
setCentralWidget(view);

我仍然需要查看是否可以与QWebEngineView进行通信,以便捕获事件并将数据发送到HTML中的javascript函数。

由于该项目现在用C语言编写,Qt负责HTML GUI,我确信我也可以在Windows上编译它。当我到达LibVLC的部分时,C也会有所帮助。

2017年12月25日编辑 我现在也设法与QWebEngineView进行通信。简单的Qt到QWebEngineView通信:

view->page()->runJavaScript("MyJSFunction('optionalArgument')");

为了更强大和双向的沟通,我正在使用QWebChannel