medialibrary で あそぼう

16
MediaLibrary で あそぼう 伊勢 シン / 伊藤 伸裕 2012/02/18(Sat) Windows Phone Arch@Nagoya

Upload: shin-ise

Post on 04-Jul-2015

784 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: MediaLibrary で あそぼう

MediaLibrary  で あそぼう 伊勢 シン /  伊藤 伸裕  

 2012/02/18(Sat)  

Windows  Phone  Arch@Nagoya  

Page 2: MediaLibrary で あそぼう

自己紹介

•  伊勢 シン  •  Microso@  MVP  for  Device  ApplicaGon  Development  (Oct  2011-­‐Sep  2012)  

•  大阪のソフトウェア開発会社で  スマートフォンアプリ作ってます。  –  iPhone  – Android  – Windows  Phone  – ほか

Page 3: MediaLibrary で あそぼう

自己紹介

•  趣味でもスマートフォンアプリ作ってます  – 最近はちょっと縮小気味  – SongTweeter  – 宝塚市ごみの日カレンダー  – EbIRC  – ZEROProxy  

•  プラネタリウム好き  – 今日はせっかく名古屋に来たのに行程の都合上  

名古屋市立科学館いけなくて涙目…

Page 4: MediaLibrary で あそぼう

おしながき

•  MediaLibrary  をつかう  •  音楽の一覧を取得する  •  音楽を再生する  •  音楽の再生状態を取得する  •  画像をChooserを使わずに取得する

Page 5: MediaLibrary で あそぼう

MediaLibrary

•  Windows  Phone  に入っているメディアを扱う  – Music+Videos  Hub  に入っている音楽  – Pictures  Hub  に入っている写真  

•  [email protected]  を参照に追加  •  [email protected]  

というクラスから使い始める  

Page 6: MediaLibrary で あそぼう

MediaLibrary

Page 7: MediaLibrary で あそぼう

MediaLibraryのデバッグ

•  MediaLibrary  は Zune  So@ware  接続状態では使えない。  

•  通常、Windows  Phoneのデバッグ中は  Zune  So@wareが起動しているので、  そのままでは動かせない。  

•  Zune  So@wareに認識させた後、終了して、  WPConnect.exe  を実行すると、  Zune  So@wareなしでデバッグが実行できる。  

Page 8: MediaLibrary で あそぼう

音楽の一覧取得

•  Albums,  ArGsts,  Songs  プロパティに含まれる  –  アルバムごと  –  アーティストごと  

– 全曲  

•  アルバムのアートワークも取得できる  var istream = song.GetImageStream(); if (istream != null) {

var bi = new BitmapImage(); bi.SetSource(istream); albumArt.Source = bi;

}

Page 9: MediaLibrary で あそぼう

音楽を再生する

•  MediaLibrary  からとってきた Song  クラスをMediaPlayer  クラスにいれるだけ。  – SongCollecGon  クラス (ArGsts.Songs  など)  も可

MediaPlayer.Play(song);

Page 10: MediaLibrary で あそぼう

音楽の再生状態取得

•  MediaPlayer.Queue.CurrentSong  などから  再生している曲をとれる  

•  MediaStateChanged,  AcGveSongChanged  といったイベントで状態が変わったことを  検知できるけど、  XNAのイベントをそのまま使うと落ちる  – XNAのフレーム更新をシミュレートしないといけな

Page 11: MediaLibrary で あそぼう

XNAのイベント取得

h\p://d.hatena.ne.jp/iseebi/20110119/p2

Page 12: MediaLibrary で あそぼう

XNAのイベントを拾う

•  IApplicaGonServiceで処理を書く  •  App.xamlに2行書き足す

Page 13: MediaLibrary で あそぼう

画像をPickerを使わずに取得

•  Windows  Phone  でライブラリの画像を  取得するのは基本的に PhotoChooserTask

Page 14: MediaLibrary で あそぼう

画像をPickerを使わずに取得

•  Pictures,  SavedPictures,  RootPictureItem  の  各プロパティから取得する。  

var istream = image.GetThumbnail(); var bi = new BitmapImage(); bi.SetSource(istream); imageView.Source = bi;

Page 15: MediaLibrary で あそぼう

まとめ

•  ユーザーのデータのうち、  目と耳に訴えかける情報を使える  メディアライブラリ。うまくつかおう。  

•  XNAのイベントをSilverlightアプリでとるには  PhoneApplicaGonServiceを作ろう。  

Page 16: MediaLibrary で あそぼう