PR

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

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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