SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Windowsストアアプリケーション

Windowsストアアプリのメディアファイル操作の基礎

速習 Windowsストアアプリケーション 第7回

動画ファイル

 動画ファイルの再生についても音声同様、MediaElementを利用します。

動画の再生

 動画を再生するサンプルは以下です。

MediaElementの再生サンプル
<MediaElement Source="http://sample.co.jp/sample.wmv" AutoPlay="True" Width="480" Height="360"/>

 Sourceプロパティに指定するファイルが音声から動画に変わっただけで、ほぼ同じコードで動画の再生が始まります。

 XAMLで動画を指定する以外に、コードビハインド(C#コード)から動画を指定する方法を2つ紹介します。

Uriクラスを用いて動画ソースを指定する
Uri uri = new Uri("http://sample.co.jp/sample.wmv");
this.media.Source = uri;
this.media.Play();
ストリームを用いて動画ソースを指定する
// StorageFile.OpenReadAsyncメソッドでストリームを取得する
var stream = await item.storage.OpenReadAsync();
this.mediaElement.SetSource(stream, item.storage.FileType);
this.mediaElement.Play();

動画の撮影

 画像同様、動画ファイルもWebカメラを用いて撮影できます。

 利用するクラスも、CameraCaptureUIクラスとCaptureElementと画像撮影と同様です。

CameraCaptureUIを用いて撮影する

 CameraCaptureUIを用いて動画を撮影するサンプルは、以下のとおりです。

CameraCaptureUIを用いて動画を撮影する
// CameraCaptureUIを用意
CameraCaptureUI captureUI = new CameraCaptureUI();

// 撮影フォーマットをMP4に指定
captureUI.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;

// 撮影開始(OSの提供する撮影画面に移行します)
return await captureUI.CaptureFileAsync(CameraCaptureUIMode.Video);

 VideoSettingsの指定とCameraCaptureUIModeをVideoに指定する点は異なりますが、流れはほぼ画像の撮影と同様です。

CaptureElementを用いて撮影する

 CaptureElementを撮影する方法も画像の撮影とほぼ同じですが、マニフェストファイルの許可はWebカメラ以外にもマイクのチェックが必要です。

 初期化処理はまったく同じです。

CameraCaptureUIで動画を撮影するサンプル
var mediaCapture = new MediaCapture();
mediaCapture.Failed += mediaCapture_Failed;

try
{
    await mediaCapture.InitializeAsync();
    this.captureElement.Source = mediaCapture;
    // プレビューを開始
    await mediaCapture.StartPreviewAsync();
}
catch
{
    // カメラがない、カメラを許可しない場合に例外が発生する
}

 撮影時の処理はプロファイルの指定が異なります。

CaptureElementを用いて撮影する
var capture = this.captureElement.Source;

// エンコード設定
MediaEncodingProfile encordingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Vga);

// 保存場所を指定CreationCollisionOption.GenerateUniqueNameだと同じ名前がある場合別名でファイルを作成
this.file = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync("samplevideo.mp4", CreationCollisionOption.GenerateUniqueName);

// 録画開始
await capture.StartRecordToStorageFileAsync(encordingProfile, file);

 最後のStartRecordToStorageFileAsyncメソッドは、StorageFileへ撮影された動画を保存します。

まとめ

 今回はさまざまなメディアファイルの操作方法を見てきました。メディアファイルを活用することで、ストアアプリの幅も広がります。

 ぜひ、マスターして魅力的なアプリを作成してください!!

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
速習 Windowsストアアプリケーション連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7059 2013/03/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー