10

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

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

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

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

1 回答 1

2

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

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

于 2013-05-21T08:57:18.827 回答