SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
XNAライブラリを使って音楽プレイヤー
      を作ってみよう!

       大黒 健司




      わんくま同盟 東京勉強会 #67
まずは自己紹介
• 大黒健司(だいこく・けんじ)
• 細々とフリーランサーしてます。
  現在C#メインで頑張ってます。
• 昔はアセンブラとかで仕事してました。
• Twitter ID:daikoku1976
• ブログ書いてます。
  http://daidev1976.wordpress.com/
  http://daiwp.blogspot.com/


              わんくま同盟 東京勉強会 #67
アジェンダ
• SilverlightでXNAライブラリを使ったWindows
  Phoneアプリを作成してみよう。
• SilverlightアプリケーションでXNAライブラリを
  使用するまでの手順を把握する。
• メディアライブラリやハブ機能を使用する場合
  のデバッグの注意事項を把握する。




            わんくま同盟 東京勉強会 #67
Windows PhoneでのXNAライブラリの用途
• ゲーム開発用のライブラリ
• 画像、音楽、効果音等のゲーム開発に必要な
  コンテンツにアクセスできます。



• 簡単なメディアプレイヤーは、このライブラリで
  作成できます。



          わんくま同盟 東京勉強会 #67
XNAライブラリ利用のメリット・デメリット
メリット
• PCのZuneと同期中でもWindows Phone内
  のメディアライブラリにアクセスできます。

デメリット(出来ないこと)
• プレイリストが保存できない。




           わんくま同盟 東京勉強会 #67
今回ライブラリを利用して作るアプリケーション
条件
• 初心者や経験者でもそれなりに作ったと実感
  できそうなもの。
• “Hello World”以外。


• 簡単な音楽プレイヤーなら多少なりに満足?
• Twitterで今聴いてる曲とかも呟いちゃおうか。


         わんくま同盟 東京勉強会 #67
ということで……
• こんな画面のアプリを作ろうと思います。
    再生画面            曲一覧画面




           わんくま同盟 東京勉強会 #67
必要な機能の整理
再生画面
• ボタン
  再生、一時停止、次の曲、前の曲
  ランダム、リピート、ツイート
• 表示
  再生している曲名、アーティスト名
  再生時間、曲の時間、アルバムイメージ
曲リスト画面
• 曲一覧リスト
        わんくま同盟 東京勉強会 #67
再生画面の作成
  使うコントロール
  • TextBlock×4
  • Button×6
  • StackPanel×2
  • Image×1
  • ApplicationBar有効




わんくま同盟 東京勉強会 #67
XNAライブラリをSilverlightで利用する手順
• ソリューションエクスプローラーで[参照設定]を
  右クリックし、「参照の追加」を選択。
• .NETのコンポーネント名一覧から
  「Microsoft.Xna.Framework」を選択。




           わんくま同盟 東京勉強会 #67
使用するXNAライブラリの名前空間とクラス
• Microsoft.Xna.Framework.Media名前空間
• MediaLibraryクラス
  メディアライブラリにアクセスするためのクラス。
  ゲームだとBGMに当たります。
• MediaPlayerクラス
  メディアプレイヤーの操作をするためのクラス。
  ゲームだとBGMの再生などはこちらで制御。


            わんくま同盟 東京勉強会 #67
MediaLibraryクラス
• 主に使用するプロパティ
 プロパティ名      用途

 Songs       メディアライブラリ内にある全曲一覧情報

 Albums      メディアライブラリ内にあるアルバム別一覧情報

 Artists     メディアライブラリ内にあるアーティスト別一覧情報

 Genres      メディアライブラリ内にあるジャンル別一覧情報

 Playlists   メディアライブラリ内にあるプレイリスト別一覧情報




                  わんくま同盟 東京勉強会 #67
MediaPlayerクラス(1/2)
• 主に使用するメソッド、プロパティ
 メソッド名            用途

 Play             再生する曲を指定して再生開始する。

 Pause            一時停止する。

 Resume           一時停止状態から再生を再開する。

 MovePrevious     前の曲を再生する。

 MoveNext         次の曲を再生する。

 IsRepeating      リピート設定。

 IsShuffled       ランダム設定。



                       わんくま同盟 東京勉強会 #67
MediaPlayerクラス(2/2)
• 主に使用するプロパティ、イベント
 プロパティ名             用途
 イベント名
 State              メディアプレイヤーの状態。
                    MediaState.Playing : 再生中
                    MediaState.Paused : 一時停止中
                    MediaState.Stopped : 停止中
 Queue.ActiveSong   再生中の曲情報。

 PlayPosition       再生中の曲の再生位置(時間)。

 ActiveSongChanged 再生中の曲が切り替わったときに発生するイベン
 イベント              ト。
 MediaStateChanged メディアプレイヤーの状態が変化したときに発生す
 イベント              るイベント。


                     わんくま同盟 東京勉強会 #67
MediaPlayerの状態管理
• MediaPlayerはイベント管理や状態管理が必
  要です。
• 状態管理はDispacherTimerを使用して定期
  的にMediaPlayerの状態を更新します。
  ☆XNAライブラリ利用するときのお約束☆
• 状態を更新するためのメソッドは、
  FrameworkDispacher.Updateメソッド。
  (Microsoft.Xna.Framework名前空間)


           わんくま同盟 東京勉強会 #67
Tweet機能を実装する方法
• 自力でTwitterAPI使ってやる方法
  →実装だけで時間がかかる。
• Windows Phoneで用意されているAPIを利用
  →SharestatusTask



• 今回は楽をするためにSharestatusTaskを使
  用します。

          わんくま同盟 東京勉強会 #67
SharestatusTaskクラス
• 使用するプロパティ、メソッド
 プロパティ、メソッド名   用途

 Status        投稿する内容。

 Show          Meハブを表示する。



• 使用方法
  Statusプロパティに表示したい内容を設定し、
  ShowメソッドでMeハブを表示させる。
  →投稿するかどうかはユーザーに委ねる。


               わんくま同盟 東京勉強会 #67
今までのことを踏まえて……
• 再生画面と機能を実装してみましょう。




        わんくま同盟 東京勉強会 #67
曲一覧画面の作成
    追加するページ
    • Pivotページ
    使用するコントロール
    • ListBox×2




 わんくま同盟 東京勉強会 #67
曲一覧画面での処理
• ListboxにMediaLibraryの曲名一覧をアイテ
  ムとして追加する。
• Listboxで選択が行われたときに曲の再生を
  行う。
• 曲の再生が開始されたら再生画面に戻る。




           わんくま同盟 東京勉強会 #67
曲一覧のリストは……
• 思っているよりも全然難しくないので、早速画
  面と機能を実装します。




        わんくま同盟 東京勉強会 #67
デバッグ時の注意点
• メディアライブラリやMeハブなどのハブ機能を
  利用する場合は、実機で確認します。
• 再生画面のデバッグは、エミュレーター上でも
  可能ですが、サンプル曲での確認になるので
  注意が必要です。
  ※アルバムアートなどがありません。




        わんくま同盟 東京勉強会 #67
小技
• Musicハブから自分のアプリを起動させたい。
  →[Properties]-[WMAppManifest.xml]を編集
  4行目<App ~>に HubType=“1” を追加する。




             わんくま同盟 東京勉強会 #67
まとめ
• XNAライブラリは、元々はゲーム開発向けだ
  がメディア系の操作を簡単に行えるので、そ
  の手のアプリケーション開発にもオススメ。
• Windows Phoneでは、Windows Phoneの機
  能を簡単に利用できるライブラリが揃っている
  ので、有効利用しましょう。
• メディア系アプリの確認は是非実機で!
• Windows Phoneアプリ作るのは楽しいので、
  是非挑戦してみてください。

            わんくま同盟 東京勉強会 #67
参考
• MSDNライブラリ(Windows Phone 用の
  Silverlight および XNA Framework)
 http://msdn.microsoft.com/ja-
 jp/library/ff402528(v=vs.92).aspx
• 日経ソフトウエア 2011年12月号
  メトロちゃんが目印!
• 日経BPベストムック
  iOS/Android/Windows Phone
  プログラミング

                    わんくま同盟 東京勉強会 #67
ありがとうございました!




   わんくま同盟 東京勉強会 #67

Mais conteúdo relacionado

Semelhante a わんくま勉強会東京#67 セッション資料

ADX2LE GGJ13向けワークショップ
ADX2LE GGJ13向けワークショップADX2LE GGJ13向けワークショップ
ADX2LE GGJ13向けワークショップTakashi Tanaka
 
日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話Tatsuya Matsumoto
 
MediaLibrary で あそぼう
MediaLibrary で あそぼうMediaLibrary で あそぼう
MediaLibrary で あそぼうShin Ise
 
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたマインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたMasaya Hayashi
 
OpenNebula on Ubuntu
OpenNebula on UbuntuOpenNebula on Ubuntu
OpenNebula on Ubuntuautumnalsky
 
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2
女子美術大学メディアアート演習ⅡB  2012 Spring 第10回 1/2女子美術大学メディアアート演習ⅡB  2012 Spring 第10回 1/2
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2Satoru Tokuhisa
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話Yoshihiro Ura
 
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKA
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKAPlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKA
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKAGame Tools & Middleware Forum
 
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYO
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYOPlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYO
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYOGame Tools & Middleware Forum
 
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々torutk
 
㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1Nishida Kansuke
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話sairoutine
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Aya Komuro
 
活用状況可視化ツール のご紹介
活用状況可視化ツール のご紹介活用状況可視化ツール のご紹介
活用状況可視化ツール のご紹介Mitsuru Katoh
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 
パワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+αパワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+αAkira Maruyama
 
プログラミング講座
プログラミング講座プログラミング講座
プログラミング講座Yu Yu
 

Semelhante a わんくま勉強会東京#67 セッション資料 (20)

ADX2LE GGJ13向けワークショップ
ADX2LE GGJ13向けワークショップADX2LE GGJ13向けワークショップ
ADX2LE GGJ13向けワークショップ
 
日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話
 
MediaLibrary で あそぼう
MediaLibrary で あそぼうMediaLibrary で あそぼう
MediaLibrary で あそぼう
 
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたマインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみた
 
OpenNebula on Ubuntu
OpenNebula on UbuntuOpenNebula on Ubuntu
OpenNebula on Ubuntu
 
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2
女子美術大学メディアアート演習ⅡB  2012 Spring 第10回 1/2女子美術大学メディアアート演習ⅡB  2012 Spring 第10回 1/2
女子美術大学メディアアート演習ⅡB 2012 Spring 第10回 1/2
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
 
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKA
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKAPlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKA
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 OSAKA
 
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYO
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYOPlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYO
PlayCanvas:2D機能とライブラリ組み込みのいろは - PlayCanvas運営事務局 - GTMF 2018 TOKYO
 
0621 ndk game
0621 ndk game0621 ndk game
0621 ndk game
 
20090828 Webconlocal
20090828 Webconlocal20090828 Webconlocal
20090828 Webconlocal
 
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
 
㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
 
Programming Is Fun
Programming Is FunProgramming Is Fun
Programming Is Fun
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02
 
活用状況可視化ツール のご紹介
活用状況可視化ツール のご紹介活用状況可視化ツール のご紹介
活用状況可視化ツール のご紹介
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
パワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+αパワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+α
 
プログラミング講座
プログラミング講座プログラミング講座
プログラミング講座
 

Último

What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...yutakashikano1984
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...oganekyokoi
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrRodolfFernandez1
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 

Último (8)

What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 

わんくま勉強会東京#67 セッション資料