バックグラウンドで音楽を再生する(前編)

2011年9月2日(金)
PROJECT KySS

つい先日基本編を終えたばかりですが、今回より10回にわたって、Windows Phone 7.1をメインとした、応用編のサンプルプログラムの解説をいたします。中には一部Windows Phone 7.0のサンプルも含まれています。お付き合いのほどよろしくお願いいたします。

去る2011年08月25日から8月27日までに、全国のauショップ、家電販売店で、Windows Phone OS 7.5搭載のIS12Tの発売が開始されました。価格等については下記のページを参照してください。
→参照:「Windows Phone IS12T」発売――新規・機種変更の一括価格は7万円台前半(+D Mobile)

また、デバイス情報については下記のページを参照してください。
→参照:Windows Phone デバイス情報

上記ページを見るとわかりますが、世界で初のMangoに対応した端末だけあって、スペック的にも他のスマートフォンを全般的に凌駕するものとなっているようですね。

筆者の環境は、Windows 7 Professional 32ビット+ SP1、Visual Studio 2010 Ultimate + SP1、Windows Phone SDK 7.1 RC 日本語版です。

Windows 7のService Pack 1は下記URLよりダウンロードできます。
→参照:Windows 7 および Windows Server 2008 R2 Service Pack 1 (KB976932)

Visual Studio 2010のService Pack 1は下記URLよりダウンロードできます。
→参照:Microsoft Visual Studio 2010 Service Pack 1 (インストーラー)

Windows Phone SDK 7.1 RC 日本語版は下記URLよりダウンロードできます。
→参照:Windows Phone SDK 7.1 RC (リリース候補)

また、ISOイメージファイルは下記URLよりダウンロードできます。
→参照:WPSDKV71_ja1.iso(※クリックするとダウンロードが始まります)

インストールの必要条件と方法

リリースノートの「インストールの必要条件」に下記のように明記されています。

●Visual Studio がインストールされていない場合でも Windows Phone SDK 7.1 をインストールすることができます。Microsoft Visual Studio 2010 Express for Windows Phone は、Windows Phone SDK 7.1 の一部としてインストールされ、Windows Phone SDK 7.1 をインストールした後に開発に使用できます。

●Visual Studio 2010 Professional 以上のエディションが既にインストールされている場合は、Windows Phone SDK 7.1 のインストール後に開発に使用できます。Windows Phone SDK 7.1 の言語に合わせて、Visual Studio の言語設定を変更する必要があります。

●Visual Studio 2010 RTM がインストールされている場合は、Windows Phone SDK 7.1 をインストールする前に Service Pack 1 RTM をインストールする必要があります。

また、Windows Phone SDK 7.1 Beta2(英語版)をインストールしている場合は、必ずアンインストールしてから、今回のWindows Phone SDK 7.1 RC 日本語版をインストールしてください。

また、「これから始めるWindows Phone プログラミング(基本編)」の第1回の「Visual Studio 2010 +SP1 の日本語環境にWPDT7.1のテンプレートを追加する方法」で、Template のコピーを行っていた方は、コピーしたテンプレートも事前に削除しておいてください。

英語版のExpression Blend 4と日本語版のExpression Blend 4は共存できませんので、英語版のMicrosoft Expression Blend 4と全てのExpression Blend SDKをアンインストールしてください。

また、下記のURLより、「Windows Phone Toolkit - August 2011 (7.1 SDK)」もダウンロードしてインストールしてください。
 →参照:Silverlight for Windows Phone Toolkit - Aug 2011.msi

今回のツールキットは、Windows Phone 7.5の環境での動作をベースにチューニングが行われています。特に日本では、Windows Phone 7.5の環境がスタートするため、ぜひ、今回のツールキットへのアップデートをお勧めします。

以上で、Windows Phone SDK 7.1 RC 日本語版の環境が構築できます。

最初のサンプルは、Windows Phone Developer Tools 7.1から追加された、「Windows Phone オーディオ再生エージェント」テンプレートプロジェクトを使って、他のアプリケーションが実行されている場合でも、バックグラウンドで音楽を再生し続けるサンプルです。解説が長くなるため、前編と後編の2回に分けて解説します。前編では、「Windows Phoneオーディオ再生エージェント」の追加と、そのロジックコードをメインに解説します。

まずは、このプログラムで実装する機能の動作を、下記に解説しておきます。

実行すると、[前へ]、[再生]、[次へ]、[WebBrowser] の4つのボタンが表示されます。最初に[再生]ボタンをクリックします。画像と音楽のタイトルが表示され、音楽が再生されます。[次へ]ボタンをクリックすると、次の音楽が再生されます(図1)。1つの音楽が再生し終わると自動的に次の音楽に変わります。音楽を再生したまま、[WebBrowser]ボタンをクリックすると、MSNのサイトが表示され(図2)、バックグラウンドでは音楽が再生され続けます。

図1:[再生]ボタンで音楽が再生される。[次へ]ボタンで次の音楽が再生される。ブラウザ内にサイトが表示されても、バックグラウンドでは音楽が再生し続けている(クリックで拡大)

サンプルは以下よりダウンロードできます。
→ 「バックグラウンドで音楽を再生する」のサンプルファイル(117.8MB)
※サンプル実行でエラーが発生した場合は、「ソリューションのビルド」を実行後、再度、デバッグ開始を行ってください
※ファイルサイズが大きいため、ダウンロードの際はご注意ください

プロジェクトの作成

VS 2010のメニューから[ファイル(F)/新規作成(N)/プロジェクト(P)]を選択します。次に、「Windows Phone アプリケーション」を選択して、「名前(N)」に任意のプロジェクト名を指定します。ここでは「WP71_BackgroundAudioPlayer」という名前を付けています。Windows Phoneのバージョンは7.1を選択します。

ソリューションエクスプローラー内にImageとWAVというフォルダを作成し、画像とWAVファイルを追加しておきます。追加したImageフォルダ内の.jpgファイルのプロパティから、「ビルドアクション」に「コンテンツ」と指定しておきます。デフォルトでは「Resource」になっています。WAVフォルダに追加されたWAVファイルはデフォルトで「コンテンツ」になります。また、WAVファイルに関しては、プロパティから「出力ディレクトリーにコピー」の箇所を「新しい場合はコピーする」に指定しておきます。

これらのファイルは、ダウンロードされたサンプルファイルには追加済みです。

MainPage.xamlの編集とコントロールの追加

x:NameがPageTitleというTextBlockのTextプロパティに「BackgroundAudioPlayer」と指定します。プロパティウィンドウからForeground(文字色)とFontSize(文字サイズ)を指定します。

ツールボックスからButtonコントロールを4個、ImageとTextBlockコントロールを1個ずつ配置します。ButtonのContentとx:Nameは図2のように指定します。[前へ]と[次へ]ボタンのIsEnabledプロパティのチェックは外して、最初表示された時点ではクリック不可としておきます。

図2:Buttonコントロールを4個、ImageとTextBlockコントロールを1個ずつ配置する(クリックで拡大)

書き出されるXAMLコードは省略します。

Windows Phone オーディオ再生エージェントの追加

ソリューションエクスプローラー内の一番上に表示されるソリューションプロジェクトを選択し、マウスの右クリックで表示されるメニューから、「追加(D)/新しいプロジェクト(N)」と選択します(図3)。

図3:「追加(D)/新しいプロジェクト(N)」と選択する(クリックで拡大)

「新しいプロジェクトの追加」画面が表示されますので、「Windows Phoneオーディオ再生エージェント」を選択します。「名前(N)」はデフォルトの「AudioPlaybackAgent1」のままにしています(図4)。

3

図4:「Windows Phone オーディオ再生エージェント」を選択する(クリックで拡大)

[OK]ボタンをクリックすると、ソリューションエクスプローラー内に「AudioPlaybackAgent1」プロジェクトが追加され、「AudioPlayer.vb」というクラスファイルが作成されます(図5)。

図5:「AudioPlaybackAgent1」プロジェクトが追加され、「AudioPlayer.vb」というクラスファイルが作成される(クリックで拡大)

「Windows Phone オーディオ再生エージェント」は、バックグラウンド音声を再生するための、AudioPlayerAgentをベースにした、UIの無いテンプレートプロジェクトになります。バックグラウンドエージェントアプリケーションから参照します。

ソリューションエクスプローラー内の「WP71_BackgroundAudioPlayer」を選択し、マウスの右クリックで表示されるメニューから、「参照の追加(R)」を選択します。「プロジェクト」タブをクリックし、「AudioPlayerAgent1」を選択し、[OK]ボタンをクリックします。ソリューションエクスプローラー内の「WP71_BackgroundAudioPlayer」の参照設定に「AudioPlayerAgent1」が追加されます(図6)。

図6:「参照の追加(R)」から「プロジェクト」タブ内の「AudioPlayerAgent1」を選択する(左図)。参照設定に「AudioPlayerAgent1」が追加される(右図)(クリックで拡大)

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています