【问题标题】:Custom URL protocol handler Qt 5自定义 URL 协议处理程序 Qt 5
【发布时间】:2012-12-24 20:38:43
【问题描述】:

我想在我的应用中使用Video/MediaPlayer QML 元素,并让它播放来自自定义流的视频。 QMediaPlayer 似乎支持这一点,因为你可以告诉它从 QIODevice 中读取,它可以做任何你想做的事情。但是MediaPlayer 只支持 URL。

有什么方法可以注册我自己的使用自己的流协议的 URL 方案?例如,假设我想做rtsp2://...,我可以做一些模糊的事情吗:

class Rtsp2 : public QIODevice
{
    // open, read, seek, close, etc.
}

QCoreApplication::registerUrlProtocol("rtsp2", Rtsp2);

【问题讨论】:

  • 处理 url 是操作系统特定的。

标签: qt url qml qt-quick qiodevice


【解决方案1】:

我没有查看详细信息,但 QML 引擎有一个用于连接的 QNetworkAccessManager。您可以通过子类化和挂钩 createRequest 在 QNAM 层添加自己的协议。但是我怀疑 QMediaPlayer 可能不会使用此 QNAM 进行媒体加载,因为底层媒体层通常提供自己的 IO 抽象。

(此外,将自定义协议添加到 QNAM 也并非易事 - 理想情况下,这将是一个简单的 'registerProtocolFor' 调用,但遗憾的是事实并非如此)

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多