【问题标题】:Input video data from C++ to QML Video Player将视频数据从 C++ 输入到 QML 视频播放器
【发布时间】:2014-02-06 14:21:44
【问题描述】:

我正在寻找在 QML 中实现视频播放器应用程序的最佳方法。几乎所有 QML 示例都是从文件系统或 Web 读取文件:

MediaPlayer {
    id: mediaplayer
    source: "groovy_video.mp4"
}

VideoOutput {
    anchors: parent.fill
    source: mediaplayer
}

我想为 MediaPlayer 指定我自己的源 - 一个 C++ QObject 派生类,它具有类似于 QIODevice 的接口。这对我的需求来说是完美的。我需要分段预加载视频并缓存以供以后使用。

有满足我需求的简单解决方案吗? (我使用的是 Qt 5.2)

【问题讨论】:

    标签: qt qml qmediaplayer qiodevice


    【解决方案1】:

    一般来说,您应该能够覆盖 QML 加载的任何 URL。 Qt 4 文档比 Qt 5 更明确地说明了这一点:

    https://doc.qt.io/qt-4.8/qdeclarativenetwork.html

    但对于 Qt 5 应该也是类似的:

    http://doc.qt.io/qt-5/qqmlnetworkaccessmanagerfactory.html

    例如您应该能够为自定义源使用特定的 url 架构 magic+videos://.... 作为您的自定义源。

    在最坏的情况下,您必须从 QNetworkAccessManager 和 QNetworkReply(从 QIODevice 继承)继承(并覆盖某些方法)。

    自 qt4 以来我没有玩过这个,但我认为一个好的起点是这样的:

    http://doc.qt.io/qt-5/qtqml-networkaccessmanagerfactory-example.html

    我对这类东西有点过时了,但希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2011-09-25
      • 1970-01-01
      • 2018-01-16
      • 2019-08-13
      • 1970-01-01
      相关资源
      最近更新 更多