ユニバーサルWindowsアプリ(Pre)入門029:AdaptiveStreamingサンプル

金曜日 , 17, 7月 2015 Leave a comment

 (予め)本記事はプレビュー版の環境に基づいて書かれています。

 

 Windows 1o Desctop Build 10240

 Windows 1o Mobile Build 10166

 Visual Studio 2015 RC

 

 製品版では内容と異なる可能性もあります。

 紹介したプロジェクトは以下から実行可能です。

 

UWPアプリのサンプル(GitHub)

 

AdaptiveStreamingで動画再生

 

 今回は動画再生のサンプルです。

 AdaptiveStreamingは接続したユーザーの帯域にあわせて適切なサイズの動画を流すというSilverlight時代からおなじみのテクノロジーです。

004

 

 って動画があれじゃない!!

 時代は変わったものです。

 

 動画の再生には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

 

 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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください