我想在我的应用程序中使用Video/MediaPlayer QML元素,并让它播放来自自定义流的视频。QMediaPlayer似乎支持这一点,因为你可以告诉它从QIODevice读取,它可以做任何你想做的事情。但是MediaPlayer只支持URL。
有没有办法注册我自己的URL方案,使用我自己的流协议?例如,假设我想制作rtsp2://...,我可以做一些模糊的事情,比如:
class Rtsp2 : public QIODevice
{
// open, read, seek, close, etc.
}
QCoreApplication::registerUrlProtocol("rtsp2", Rtsp2);发布于 2013-05-21 16:57:19
我还没有看过细节,但是QML引擎有一个用于连接的QNetworkAccessManager。您可以通过子类化和挂钩createRequest在QNAM层添加您自己的协议。然而,我怀疑QMediaPlayer可能不会使用这个QNAM进行媒体加载,因为底层媒体层通常提供自己的IO抽象。
(另外,向QNAM添加自定义协议并不是微不足道的-理想情况下,这将是一个简单的'registerProtocolFor‘调用,但遗憾的是,事实并非如此)
https://stackoverflow.com/questions/14025521
复制相似问题