medialibrary で あそぼう

Post on 04-Jul-2015

784 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

 2012/02/18(Sat)  

Windows  Phone  Arch@Nagoya  

自己紹介

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

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

自己紹介

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

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

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

おしながき

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

MediaLibrary

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

•  Microso@.XNA.Framework  を参照に追加  •  Microso@.XNA.Framework.Media.MediaLibrary  

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

MediaLibrary

MediaLibraryのデバッグ

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

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

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

音楽の一覧取得

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

– 全曲  

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

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

}

音楽を再生する

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

MediaPlayer.Play(song);

音楽の再生状態取得

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

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

XNAのイベント取得

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

XNAのイベントを拾う

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

画像をPickerを使わずに取得

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

画像をPickerを使わずに取得

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

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

まとめ

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

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

top related