macos - Qt 5.3.2 QtQuick QML 应用程序不播放 youtube 视频

标签 macos youtube webkit qml qtquick2

我有基本的 WebView 项目和 Qt SDK 5.3.2。我试过浏览几个 youtube 视频。实际上,仅播放音频。但是视频,没有。

只有黑屏可见: enter image description here

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1
import QtWebKit 3.0
import QtWebKit.experimental 1.0

ScrollView {
    anchors.fill: parent
    WebView {
        id: webview
        anchors.fill: parent
        url: "https://www.youtube.com/"

        experimental.preferences.pluginsEnabled: true

        onNavigationRequested: {
            request.action = WebView.AcceptRequest;
        }
    }
}

在发现一些帮助后,我找到了一种测试加载页面的方法:

url: "http://www.youtube.com/html5"

此 URL 显示以下结果: enter image description here

我应该怎么做才能在我的应用中提供以下功能:

  • 媒体源扩展 MSE
  • MSE 和 H.264
  • MSE 和 Web VP9

最佳答案

这可能是 Qtwebkit 的问题,现在 QT 不支持 Qtwebkit 所以我认为最好转移到 QTwebengine ,这里是 webengine 代码的示例。 Web引擎初始化部分如下

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QtWebEngine::initialize();

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

加载网页的Qml部分是

import QtQuick 2.0
import QtQuick.Window 2.0
import QtWebEngine 1.0

Window {
    width: 1024
    height: 750
    visible: true
    WebEngineView {
        anchors.fill: parent
        url: "http://www.qt.io"
    }
}

请引用此链接了解更多详情 http://doc.qt.io/qt-5/qtwebengine-webengine-minimal-example.html

MSE 将从 QT 5.5 版本开始支持,可以通过在构建 Qt WebEngine 时将以下选项传递给 qmake 来启用专有编解码器:

qmake WEBENGINE_CONFIG+=use_proprietary_codecs

关于macos - Qt 5.3.2 QtQuick QML 应用程序不播放 youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130295/

相关文章:

CSS3 箭头在 webkit 中不起作用

cocoa - 如何在我的 Cocoa 应用程序中正确嵌入第三方框架?

javascript - 播放列表中每个视频之间的 Videojs VAST 广告

python - 我想在 python youtube 数据 api 中获取所有 nextPageTokens

c# - mediaelement 中的 UWP youtube 播放器

java - 如何在 JavaFX 8 WebView 中设置/记住滚动条拇指位置?

javascript - Joomla 更新后一个文件出现 ERR_CONTENT_DECODING_FAILED

ruby-on-rails - Ruby on Rails 无法访问 http :/localhost:3000 on MAC

linux - Sed 命令适用于 Linux,但不适用于 OS X

c - 如何在新的 MacBookPro 上以编程方式激活 nVidia 卡以进行 CUDA 编程?