HTML5/CSS3/JS 跨平台视频应用程序的 GUI
HTML5/CSS3/JS GUI for cross-platform video app
我想为播放视频文件的跨平台(Linux、Win)应用程序创建一个 HTML5/CSS3/JS GUI。简单吧?
嗯,在过去的几周里,我花了很多时间寻找正确的解决方案,尝试了很多,在这一点上,我正在努力。
我开始检查 Electron, but unfortunately it does not support all video formats (like MKV, etc) natively. So I thought LibVLC might be a good component to use in this app. But I could not get it to work with Electron. Projects like WebChimera(Electron 的 VLCLib)似乎已经死了。
我尝试的另一个角度是将 Visual Studio Code, get a C++ Hello World test running (G++ compiled, works great) and then try to get CEF(编译的二进制文件,似乎更容易?)安装到我的项目中。不幸的是,我的知识还不足以在 VSCode 中获得 CEF 运行ning(g++ 运行良好,但这需要 cmake?)
因此,我再次求助于 Whosebug 社区,寻求一些指导并听取一些想法。或许还有其他角度。你会怎么做?
- 桌面应用程序。 Windows 和 Linux 都需要 运行。
- 播放不同类型的视频文件(VLC 满足所有需求)
- 使用 HTML5/CSS3/JS 作为 GUI
- 编程语言不是太重要,我会写一些,然后快速学习其他的。
我想我可能在 C++、CEF 和 LibVLC 方面走在正确的轨道上。如果是这样,有没有人可以帮助我在 Visual Studio 代码中获得 CEFSimple 运行ning?我开发 Linux。如果更好,我愿意尝试 editors/IDE。
最后我安装了 QT Creator 和 QT 5.6.2,并使用 QWebEngineView 作为中心部件。
使用..
QString appPath = qApp->applicationDirPath();
view->setUrl( QUrl::fromLocalFile( appPath + "/GUI/index.html") );
我能够加载我的本地 HTML 文件并且它有效。
QWebEngine 在 QT Creator 的小部件列表中,所以我发现我可以通过向主 window header 添加一个 include 来以编程方式创建它,如下所示:..
#include <QWebEngineView>
然后把这个写在我的主要 window 代码中..
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')");
为了更稳健和 bi-directional 通信,我使用 QWebChannel
我想为播放视频文件的跨平台(Linux、Win)应用程序创建一个 HTML5/CSS3/JS GUI。简单吧?
嗯,在过去的几周里,我花了很多时间寻找正确的解决方案,尝试了很多,在这一点上,我正在努力。
我开始检查 Electron, but unfortunately it does not support all video formats (like MKV, etc) natively. So I thought LibVLC might be a good component to use in this app. But I could not get it to work with Electron. Projects like WebChimera(Electron 的 VLCLib)似乎已经死了。
我尝试的另一个角度是将 Visual Studio Code, get a C++ Hello World test running (G++ compiled, works great) and then try to get CEF(编译的二进制文件,似乎更容易?)安装到我的项目中。不幸的是,我的知识还不足以在 VSCode 中获得 CEF 运行ning(g++ 运行良好,但这需要 cmake?)
因此,我再次求助于 Whosebug 社区,寻求一些指导并听取一些想法。或许还有其他角度。你会怎么做?
- 桌面应用程序。 Windows 和 Linux 都需要 运行。
- 播放不同类型的视频文件(VLC 满足所有需求)
- 使用 HTML5/CSS3/JS 作为 GUI
- 编程语言不是太重要,我会写一些,然后快速学习其他的。
我想我可能在 C++、CEF 和 LibVLC 方面走在正确的轨道上。如果是这样,有没有人可以帮助我在 Visual Studio 代码中获得 CEFSimple 运行ning?我开发 Linux。如果更好,我愿意尝试 editors/IDE。
最后我安装了 QT Creator 和 QT 5.6.2,并使用 QWebEngineView 作为中心部件。
使用..
QString appPath = qApp->applicationDirPath();
view->setUrl( QUrl::fromLocalFile( appPath + "/GUI/index.html") );
我能够加载我的本地 HTML 文件并且它有效。
QWebEngine 在 QT Creator 的小部件列表中,所以我发现我可以通过向主 window header 添加一个 include 来以编程方式创建它,如下所示:..
#include <QWebEngineView>
然后把这个写在我的主要 window 代码中..
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')");
为了更稳健和 bi-directional 通信,我使用 QWebChannel