Home > Software design >  QML QtWebEngine Embed Youtube autoplay not working
QML QtWebEngine Embed Youtube autoplay not working

Time:09-14

I embed youtube within QML WebEngineView. Everything is working fine but only the autoplay is not working. I try to add ( ?autoplay=1 ) after URL as this answer How can I autoplay a video using the new embed code style for Youtube? but It still not working.

Here is my QML code.

ApplicationWindow {
    id: root
    visible: true
    width: 576; height: 400
    title: "Test"
    x: 0;y: 0;

    WebEngineView {
        id: webViewID
        anchors.fill: parent
        backgroundColor: "black"
    }

    Component.onCompleted: {
        webViewID.loadHtml('<iframe id="ms-youtube" width="100%" height="100%" src="https: //www.youtube.com/embed/-mN3VyJuCjM?autoplay=1 " title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>')
    }
}

CodePudding user response:

pyqt5 qwebenginview doesn't autoplay youtube videos

You need to add settings.playbackRequiresUserGesture: false to your WebEngineView instance. Check Qts documentation for more information about why https://doc.qt.io/qt-6/qml-qtwebengine-webenginesettings.html#playbackRequiresUserGesture-prop

ApplicationWindow {
    id: root
    visible: true
    width: 576
    height: 400
    title: "Test"

    WebEngineView {
        id: webViewID
        anchors.fill: parent
        backgroundColor: "black"
        settings.playbackRequiresUserGesture: false
    }

    Component.onCompleted: {
        webViewID.url = "https://www.youtube.com/embed/-mN3VyJuCjM?autoplay=1"
    }
}
  • Related