SlideShare a Scribd company logo
1 of 16
Download to read offline
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のイベント取得	




hp://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を作ろう。	
  
MediaLibrary で あそぼう

More Related Content

Similar to MediaLibrary で あそぼう (8)

わんくま勉強会東京#67 セッション資料
わんくま勉強会東京#67 セッション資料わんくま勉強会東京#67 セッション資料
わんくま勉強会東京#67 セッション資料
 
JUCEを利用したモバイル クロスプラットフォーム開発
JUCEを利用したモバイル クロスプラットフォーム開発JUCEを利用したモバイル クロスプラットフォーム開発
JUCEを利用したモバイル クロスプラットフォーム開発
 
日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話日本Androidの会発表スライド androidのメディア機能の話
日本Androidの会発表スライド androidのメディア機能の話
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
Firefox OS アプリ開発
Firefox OS アプリ開発Firefox OS アプリ開発
Firefox OS アプリ開発
 
EclipseCon NA2016 report
EclipseCon NA2016 reportEclipseCon NA2016 report
EclipseCon NA2016 report
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 

More from Shin Ise

Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCrossCross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
Shin Ise
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
Shin Ise
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4
Shin Ise
 
すごいHaskell読書会#10
すごいHaskell読書会#10すごいHaskell読書会#10
すごいHaskell読書会#10
Shin Ise
 
音声APIを使ってみる
音声APIを使ってみる音声APIを使ってみる
音声APIを使ってみる
Shin Ise
 
すまべんLite@関西#1
すまべんLite@関西#1すまべんLite@関西#1
すまべんLite@関西#1
Shin Ise
 
Xamarin2.0であそぼう
Xamarin2.0であそぼうXamarin2.0であそぼう
Xamarin2.0であそぼう
Shin Ise
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
Shin Ise
 
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
Shin Ise
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
 
本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit
Shin Ise
 
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイントSocketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Shin Ise
 
Macで使うWindows Phone 7
Macで使うWindows Phone 7Macで使うWindows Phone 7
Macで使うWindows Phone 7
Shin Ise
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
Shin Ise
 
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備
Shin Ise
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とか
Shin Ise
 
Bluetoothでつなごう!
Bluetoothでつなごう!Bluetoothでつなごう!
Bluetoothでつなごう!
Shin Ise
 
モバイルでIRCを活用する with EbIRC
モバイルでIRCを活用する with EbIRCモバイルでIRCを活用する with EbIRC
モバイルでIRCを活用する with EbIRC
Shin Ise
 

More from Shin Ise (20)

Cross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCrossCross platform development with Xamarin 2.0 + MvvmCross
Cross platform development with Xamarin 2.0 + MvvmCross
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
 
すまべんLite@関西#4
すまべんLite@関西#4すまべんLite@関西#4
すまべんLite@関西#4
 
すごいHaskell読書会#10
すごいHaskell読書会#10すごいHaskell読書会#10
すごいHaskell読書会#10
 
音声APIを使ってみる
音声APIを使ってみる音声APIを使ってみる
音声APIを使ってみる
 
すまべんLite@関西#1
すまべんLite@関西#1すまべんLite@関西#1
すまべんLite@関西#1
 
Xamarin2.0であそぼう
Xamarin2.0であそぼうXamarin2.0であそぼう
Xamarin2.0であそぼう
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
 
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
すごいHaskell読書会 in 大阪 #4 「第6章 モジュール」
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit本当は怖いSilverlight for Windows Phone Toolkit
本当は怖いSilverlight for Windows Phone Toolkit
 
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイントSocketプログラム Silverlight for Windows Phoneへの移植のポイント
Socketプログラム Silverlight for Windows Phoneへの移植のポイント
 
Macで使うWindows Phone 7
Macで使うWindows Phone 7Macで使うWindows Phone 7
Macで使うWindows Phone 7
 
iOSのVoiceOver対応開発
iOSのVoiceOver対応開発iOSのVoiceOver対応開発
iOSのVoiceOver対応開発
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
 
Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備Windows Phone 7 に向けてクラウドを準備
Windows Phone 7 に向けてクラウドを準備
 
C#でiPhone開発とか
C#でiPhone開発とかC#でiPhone開発とか
C#でiPhone開発とか
 
Bluetoothでつなごう!
Bluetoothでつなごう!Bluetoothでつなごう!
Bluetoothでつなごう!
 
モバイルでIRCを活用する with EbIRC
モバイルでIRCを活用する with EbIRCモバイルでIRCを活用する with EbIRC
モバイルでIRCを活用する with EbIRC
 
Windows Mobile用パッケージマネージャ Giraffe の紹介
Windows Mobile用パッケージマネージャ Giraffe の紹介Windows Mobile用パッケージマネージャ Giraffe の紹介
Windows Mobile用パッケージマネージャ Giraffe の紹介
 

MediaLibrary で あそぼう