2012-12-24 8 views
9

Ich möchte in meiner App ein Video/MediaPlayer QML-Element verwenden und ein Video aus einem benutzerdefinierten Stream abspielen lassen. QMediaPlayer scheint dies zu unterstützen, da Sie es von einer QIODevice lesen können, die alles tun kann, was Sie wollen. Aber MediaPlayer unterstützt nur eine URL.Benutzerdefinierter URL-Protokollhandler Qt 5

Gibt es eine Möglichkeit, mein eigenes URL-Schema zu registrieren, das mein eigenes Streaming-Protokoll verwendet? Zum Beispiel, sagen, dass ich rtsp2://..., könnte ich etwas vage wie machen wollte:

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

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

handeling Urls ist o specifick. –

Antwort

2

Ich habe nicht auf die Details angesehen, aber der QML-Motor hat eine QNetworkAccessManager verwendet es für die Konnektivität. Sie können Ihre eigenen Protokolle auf der QNAM-Ebene hinzufügen, indem Sie createRequest ableiten und einhängen. Ich vermute jedoch, dass QMediaPlayer dieses QNAM möglicherweise nicht für das Laden von Medien verwendet, da die zugrunde liegende Medienebene oft eine eigene E/A-Abstraktion bereitstellt.

(Auch das Hinzufügen von benutzerdefinierten Protokollen zu QNAM ist nicht gerade trivial - im Idealfall wäre es ein einfacher ‚registerProtocolFor‘ ​​Anruf sein, aber leider ist dies nicht der Fall ist)

Verwandte Themen