【问题标题】:HTML5/CSS3/JS GUI for cross-platform video app用于跨平台视频应用的 HTML5/CSS3/JS GUI
【发布时间】:2017-08-25 14:22:31
【问题描述】:

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

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

我首先检查了Electron,但不幸的是它本身并不支持所有视频格式(如 MKV 等)。所以我认为LibVLC 可能是在这个应用程序中使用的一个很好的组件。但我无法让它与 Electron 一起工作。 WebChimera(Electron 的 VLCLib)之类的项目似乎已经死了。

我尝试的另一个角度是安装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 方面走在正确的轨道上。如果是这样,有没有人可以帮助我让 CEFSimple 在 Visual Studio Code 中运行?我在 Linux 上开发。如果更好的话,我愿意尝试编辑器/IDE。

【问题讨论】:

    标签: html user-interface cross-platform libvlc


    【解决方案1】:

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

    使用..

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

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

    QWebEngine 在 QT Creator 的小部件列表中,所以我发现我可以通过向主窗口标题添加包含来以编程方式创建它,如下所示:..

    #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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-18
      • 2014-02-23
      • 2015-05-28
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多