2017-06-18 10 views
0

HTTP経由でWebサーバーからビデオをストリーミングしようとしています。ビデオをストリーミングするには、私は現在MediaSourceを作成しています:UWP MediaSource(HTTP経由の認証あり)

MediaSource.CreateFromUri(new Uri("https://example.com/video.mp4")); 

そして、そのMediaSourceをMediaPlayerElementに追加して、ビデオを再生します。

これは、サーバが認証を必要としない限り動作します。しかし、今私はビデオが起動しないように基本認証を使用するサーバーを持っています。

私の古いリクエストは、私はまた、認証ヘッダーを持つためにそれらを必要とする今、この

GET /video.mp4 HTTP/1.1 Range: bytes=0- Accept: */* User-Agent: NSPlayer/12.00.15063.0332 WMFSDK/12.00.15063.0332 GetContentFeatures.DLNA.ORG: 1 Accept-Encoding: gzip, deflate Host: example.com Connection: Keep-Alive enter code here

に似て見えたが、私はそれを達成する方法を知らない(私が使用することはできませんので、私自身のHttpClient) :

Authorization: Basic dXNlcjpwYXNzd29yZA== 

この質問は私の問題と似ています。著者は彼の問題を解決しましたが、残念ながら彼のやり方を正確には説明していませんでした。

誰かがここに助けてもらえますか? MediaSourceまたはMediaPlayerElementで資格情報/基本認証を使用するにはどうすればよいですか?

答えて

0

ご覧のとおり、MediaSource.CreateFromUri(Uri)メソッドはUriパラメータのみを受け入れることができます。この方法で認証ヘッダーを設定する方法はありません。

認証が必要なオンラインビデオファイルを再生するには、HttpClientを利用して、必要な資格情報またはヘッダーを手動でHTTP要求することができます。

HttpClientの上に構築されたカスタムのIRandomAccessStreamクラスが必要な場合があります。そのため、範囲ヘッダーを使用してサーバーからの一連のバイトを要求することができ、ストリーム全体をダウンロードする必要はありませんそれ。

詳細については、HttpRandomAccessStream classを実装するGitHubのMediaPlayerElementWithHttpClientを参照してください。

HttpRandomAccessStreamクラスは、インターネットからコンテンツをストリーミングすることができ、IRandomAcessStream又はIRandomAccessStreamWithContentTypeとして消費することができるHttpClientの上にラッパーです。

、その溶液の上に使用して、注意してください:サーバはHTTPヘッダRangeをサポートしている必要があります。

関連する問題