2017-08-25 78 views
1

我想为可播放视频文件的跨平台(Linux,Win)应用创建HTML5/CSS3/JS GUI。很简单,对吧?用于跨平台视频应用的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. 编程语言不是太重要,我可以写几个,迅速学习别人。

我想我可能会在C++,CEF和LibVLC的正确轨道上。如果是这样,有没有人可以帮助我在Visual Studio代码中运行CEFSimple?我在Linux上开发。如果更好,我愿意尝试编辑/ IDE。

回答

0

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

使用..

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

我能得到我的本地HTML文件中加载和它的作品。

的QWebEngine WASN在Qt Creator中的窗口小部件列表,所以我发现我可以通过添加包括主窗口标题类似这样的编程方式创建:..

#include <QWebEngineView> 

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

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

我还是要看看我能不能为了赶事件,也将数据发送到JavaScript函数我的HTML里面有QWebEngineView沟通。

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

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

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

并为更强大和双向通信我使用的是QWebChannel

:简单的Qt通过向QWebEngineView通信