2012-12-24 3 views
9

Desidero utilizzare un elemento QML Video/MediaPlayer nella mia app e farlo riprodurre un video da un flusso personalizzato. QMediaPlayer sembra supportare questo dato che puoi leggere da uno QIODevice che può fare tutto quello che vuoi. Ma MediaPlayer supporta solo un URL.Gestore protocollo URL personalizzato Qt 5

C'è un modo per registrare il mio schema URL che utilizza il mio protocollo di streaming? Ad esempio, dire che ho voluto fare rtsp2://..., potevo fare qualcosa di vagamente simile:

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

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

gli URL handeling è OS specifick. –

risposta

2

non ho guardato i dettagli, ma il motore ha una QML QNetworkAccessManager che utilizza per la connettività. Puoi aggiungere i tuoi protocolli al livello QNAM sottoclassi e hooking createRequest. Tuttavia, sospetto che QMediaPlayer non possa utilizzare questo QNAM per il caricamento dei supporti, poiché il livello multimediale sottostante spesso fornisce la propria astrazione IO.

(Inoltre, l'aggiunta di protocolli personalizzati per QNAM non è esattamente banale - ideale sarebbe una semplice chiamata 'registerProtocolFor', ma purtroppo questo non è il caso)