2012-12-24 50 views
9

我想在我的應用程序中使用QML元素Video/MediaPlayer,並讓它從自定義流中播放視頻。 QMediaPlayer似乎支持這一點,因爲你可以告訴它從QIODevice讀取哪些可以做任何你想要的。但MediaPlayer僅支持一個URL。自定義URL協議處理程序Qt 5

有什麼辦法可以註冊我自己的URL方案,使用我自己的流協議?例如,說我要拍rtsp2://...,我可以做一些像含糊:

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

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

HANDELING網址是OS specifick。 –

回答

2

我沒有看過的細節,但QML引擎有它使用用於連接的QNetworkAccessManager。您可以通過子類化和掛鉤createRequest在QNAM層添加自己的協議。不過,我懷疑QMediaPlayer可能不會使用此QNAM進行媒體加載,因爲底層媒體層通常會提供自己的IO抽象。

(另外,添加自定義協議QNAM不完全是微不足道的 - 理想情況下是一個簡單的「registerProtocolFor」呼叫,但可悲的是,這是不是這樣)

相關問題