酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneでMediaPlayerLauncherを使って動画を再生する

概要

動画再生を行うには、Microsoft.Phone.Tasks名前空間のMediaPlayerLauncherクラスを使用します。URLを渡すとストリーミング再生や、アプリケーションと同じディレクトリにある動画ファイルや、分離ストレージ(IsolatedStorage)に保存している動画ファイルの再生を行うことが出来ます。

  • 名前空間:Microsoft.Phone.Tasks

System.Object
 +–Microsoft.Phone.Tasks.MediaPlayerLauncher

Tips

  • ローカルストレージのwmvファイルを再生する

MediaのURLを設定した後は、MediaPlayerLauncherを表示するには、 Showメソッドを使用します。

まず、最初にhttpスキームのネットワーク上にある動画ファイルを再生する方法についてご紹介します。

|cs| var movieUrl = new Uri("http://support.microsoft.com/support/mediaplayer/wmptest/samples/new/mediaexample.wmv");

var task = new Microsoft.Phone.Tasks.MediaPlayerLauncher()
               {
                   Controls = MediaPlaybackControls.All,
                   Location = MediaLocationType.None,
                   Media = movieUrl
               };
task.Show();

||<

上記のコードを実行してみました。Windows Phone エミュレータの頃からですが、エミュレータ上では再生が上手くいきませんでした。実機では問題無く再生が行えています。

f:id:ch3cooh393:20150905165134p:plain

次に、コンテンツとしてxapに動画ファイルを含んでいる際の、動画再生する方法をご紹介します。LocationプロパティにMediaLocationType.Installを設定してください。

|cs| var task = new Microsoft.Phone.Tasks.MediaPlayerLauncher() { Media = new Uri("filename.wmv", UriKind.Relative), Location = MediaLocationType.None }; task.Show(); ||<

分離ストレージに保存した動画ファイルを閲覧する際には、LocationプロパティにMediaLocationType.Dataを設定します。

  • Microsoftのサイトに置かれているサンプルのwmvファイルを再生させる

MediaPlayerを操作する事が出来ます。

ちなみにサンプルのWMVは、MSのサイト(http://support.microsoft.com/kb/316992/ja)から拝借。

|cs| private void btnMediaPlayerLauncher_Click(object sender, RoutedEventArgs e) { var task = new Microsoft.Phone.Tasks.MediaPlayerLauncher() { Media = new Uri(@"http://support.microsoft.com/support/mediaplayer/wmptest/samples/new/mediaexample.wmv"), Controls = Microsoft.Phone.Tasks.MediaPlaybackControls.All }; task.Show(); } ||<

動かしてみました。動画とコントロール部分が何故か同時に表示できない現象が発生していたけど、なんとか表示されているみたいです。(ノートPCだからオーバーレイがちゃんと映ってないっぽい?)

関連記事