自定义URL协议处理程序 Qt 5

10

我想在我的应用程序中使用 Video/MediaPlayer QML元素,并从自定义流中播放视频。由于可以让QMediaPlayer从可以执行任何操作的QIODevice读取,因此似乎支持这种方式。但是MediaPlayer仅支持URL。

是否有办法注册自己的URL方案以使用自己的流媒体协议?例如,假设我想要制作rtsp2://...,那么我可以大致做些什么:

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

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

1
处理URL是操作系统特定的。 - Ruslan F.
1个回答

2
我还没有详细了解过,但是QML引擎具有用于连接的QNetworkAccessManager。您可以通过子类化并挂钩createRequest来在QNAM层添加自己的协议。但是我怀疑QMediaPlayer可能不会使用此QANM进行媒体加载,因为底层媒体层通常提供其自己的IO抽象。
(另外,向QNAM添加自定义协议并不是非常简单的操作 - 理想情况下,这应该是一个简单的“registerProtocolFor”调用,但不幸的是情况并非如此)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接