2014-11-25 2 views
3

У меня есть базовый элемент WebView и Qt SDK 5.3.2. Я попытался просмотреть несколько видеороликов YouTube. На самом деле звук воспроизводится только. Но видео, не делай.Qt 5.3.2 QtQuick приложение QML не воспроизводит видео 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

ответ

1

Я пробовал то же самое в Qt 5.4.0, и для меня это не будет играть Видео YouTube вообще (просто отображает ошибку и предлагает перезагрузить страницу).

Похоже, что проблема лежит в WebView (WebKit).

То, что я сделал это:

  • установлен Qt 5.4.0 MSVC версия
  • импортирован QtWebEngine
  • используется WebEngineView элемент

И это сработало.

Имейте в виду, что WebKit будет устаревшим в следующей версии Qt, и вам нужно будет перейти на Chromium (QtWebEngine).


Ссылки:

https://www.qtdeveloperdays.com/2013/sites/default/files/presentation_pdf/Webkit.pdf

http://www.qt.io/qt5-4/?utm_source=qtproject&utm_medium=banner&utm_campaign=qt54release#section-3

2

Это может быть проблема с QtWebKit, теперь QT не поддерживает QtWebKit, так что я думаю, что лучше, чтобы перейти к QTwebengine, вот пример для кода веб-сайта. Веб-инициализация двигателя часть выглядит следующим образом

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, проприетарные кодеки можно включить, передав следующий параметр qmake при создании Qt WebEngine:

qmake WEBENGINE_CONFIG+=use_proprietary_codecs 
Смежные вопросы