(予め)本記事はプレビュー版の環境に基づいて書かれています。
Windows 1o Desctop Build 10240
Windows 1o Mobile Build 10166
Visual Studio 2015 RC
製品版では内容と異なる可能性もあります。
紹介したプロジェクトは以下から実行可能です。
UWPアプリのサンプル(GitHub)
今回は動画再生のサンプルです。
AdaptiveStreamingは接続したユーザーの帯域にあわせて適切なサイズの動画を流すというSilverlight時代からおなじみのテクノロジーです。
って動画があれじゃない!!
時代は変わったものです。
動画の再生にはMediaElementコントロールを渡しますが、ソースは動画のパスでなく、以下のようなマニフェストファイルと言われるファイルのパスになります。
http://amssamples.streaming.mediaservices.windows.net/49b57c87-f5f3-48b3-ba22-c55cfdffa9cb/Sintel.ism/manifest(format=m3u8-aapl)
こんな感じでMediaElementのSourceプロパティに渡します。
System.Uri manifest = new System.Uri(txtInputURL.Text); mePlayer.Source = manifest;
上記URLでダウンロードできるファイルの中身を見ると、複数のビットレートの動画情報になっています。
SilverlightのころはXMLだった気がしますが、やはり時代は変わっていました。
AdaptiveMediaSourceクラスを利用してビットレートなどの設定を指定できます。
ams.InitialBitrate = bitrate;
通信時のヘッダーを書き替えることもできる模様(どんな時に書き替えるのかはわかりませんが・・・)。
httpClient = new Windows.Web.Http.HttpClient(); httpClient.DefaultRequestHeaders.TryAppendWithoutValidation("X-CustomHeader", "This is a custom header"); AdaptiveMediaSourceCreationResult result = await AdaptiveMediaSource.CreateFromUriAsync(uri, httpClient); if (result.Status == AdaptiveMediaSourceCreationStatus.Success) { ams = result.MediaSource; m.SetMediaStreamSource(ams); //Register for download requested event ams.DownloadRequested += DownloadRequested; //Register for download success and failure events ams.DownloadCompleted += DownloadCompleted; ams.DownloadFailed += DownloadFailed; }
動画配信については正式版が出てからゆっくり調べてみようと思います。
Please give us your valuable comment