SHOEISHA iD

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

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

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

音声ファイル

 音声ファイルの再生には、MediaElementを利用します。MediaElementは、動画にも音声にも利用できる便利なコントロールです。

音声を再生する

 音声を再生するサンプルコードが以下です。

MediaElementで音声を再生するコード
<MediaElement x:Name="mediaElement" Visibility="Collapsed" Source="/Assets/sample.mp3" AutoPlay="False" />

 sample.mp3という音声ファイルを自動再生(AutoPlay)モードで再生するため、ファイルが読み込まれるとすぐに再生が開始します。

Playメソッド

 プログラム処理で音声を再生する場合は、Playメソッドを呼び出します。

Playメソッドで音声を再生する
// 音声を再生する
this.mediaElement.Play();
Pauseメソッド

 音声の再生を一時停止します。再びPlayメソッドを呼び出すと、音声が一時停止した場所から再生されます。

Pauseメソッドで音声を一時停止する
// 音声を一時停止します
this.mediaElement.Pause();
Stopメソッド

 音声の再生を停止します。再びPlayメソッドを呼び出すと音声は最初から再生されます。

Stopメソッドで音声を停止する
// 音声を停止します
this.mediaElement.Stop();
MediaEndedイベントハンドラー

 音声再生終了時に呼び出されます。

IsLoopingプロパティ

 指定したファイルを連続で再生するかどうかを指定するプロパティです。

バックグラウンドでの再生

 ストアアプリは基本バックグラウンドに回ると中断状態に移行して、OSの管理のもと終了します。

 音楽プレイヤーなどの場合、そのような動作をすると再生中の音楽が中断されてしまいます。ストアアプリではこの状態を回避するために、音声ファイルのバックグラウンド再生がサポートされています。

 バックグラウンドで音声を再生する場合、Package.appxmanifestの項目追加とプログラムの修正を行います。

Package.appxmanifestの修正

 Package.appxmanifestの「宣言」タブの「サポートされる宣言」から、バックグラウンドタスクを追加します。

 「プロパティ」項目の「サポートされるタスクの種類」から、オーディオをチェックします。

バックグラウンド再生のマニフェストを指定する
バックグラウンド再生のマニフェストを指定する

プログラムの修正

MdiaControlにバックグラウンド再生時の操作に対するイベントハンドラーを設定する
    MediaControl.PlayPauseTogglePressed += MediaControl_PlayPauseTogglePressed;
    MediaControl.PlayPressed += MediaControl_PlayPressed;
    MediaControl.PausePressed += MediaControl_PausePressed;
    MediaControl.StopPressed += MediaControl_StopPressed;

}

void MediaControl_StopPressed(object sender, object e)
{
}

void MediaControl_PausePressed(object sender, object e)
{
}

void MediaControl_PlayPressed(object sender, object e)
{
}

void MediaControl_PlayPauseTogglePressed(object sender, object e)
{
}

 バックグラウンドで再生されているときに、一時停止や停止された場合の処理を記述します。

 最低限ハンドラーは指定してある必要があります。

バックグラウンド再生の設定を行う
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);

OutputMedia.SetSource(stream, file.ContentType);

MediaControl.TrackName = "SampleSong";

 上記サンプルコードでは、StorageFileとして取得した音楽ファイルからストリームを取得して、バックグラウンド再生を行っています。

次のページ
動画ファイル

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Windowsストアアプリケーション連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7059 2013/03/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング