2012-12-24 9 views
9

私のアプリでVideo/MediaPlayer QML要素を使用して、カスタムストリームからビデオを再生したいです。 QMediaPlayerはこれをサポートしているようですので、あなたは何でもできる何でもできるQIODeviceから読むことができます。しかし、MediaPlayerはURLのみをサポートします。カスタムURLプロトコルハンドラQt 5

独自のストリーミングプロトコルを使用する独自のURLスキームを登録する方法はありますか?例えば、私はrtsp2://...を作りたかったと言う、私は漠然と何か行うことができます:

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

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

HandelingのURLは、OS specifickです。 –

答えて

2

を私は詳細を見ていないが、QMLエンジンは、それが接続に使用するQNetworkAccessManagerを持っています。 createRequestをサブクラス化してフックすることで、QNAMレイヤで独自のプロトコルを追加できます。しかし、私はQMediaPlayerがこのQNAMをメディアの読み込みに使用しないかもしれないと思っています。基盤となるメディアレイヤーは、しばしば独自のIO抽象化を提供するからです。

(また、QNAMにカスタムプロトコルを追加すると、正確に些細なことではない - 理想的には、単純な「registerProtocolFor」コールになりますが、悲しいことに、これはそうではありません)