SlideShare a Scribd company logo
1 of 29
某Music Unなんとか
みたいなことがしたい
2012.08.24 スマートフォン勉強会@関東 #20
tmyt
こんにちは

 tmytといいます
 今年で19歳になります
 アマグラマからプログラマにクラスチェンジしました
 スマートフォンはこんなの使ってます
  Fujitsu IS12T(カーオーディオ)
  Sony Xperia SX(定期券)
  Apple iPhone(ゲーム機)
  Paasonic 822P(薄い電話)
おしながき


 問題と背景

 解決策の検討

 実装

 評価
問題と背景
Q.あなたの音楽ライブラリのサイズは?


 10MB?

 100MB?

 1GB?

 10GB?

 More music…?
Q.あなたの携帯のNAND領域は?


 128GB?

 64GB?

 32GB?

 16GB?

 Less storage…?
スマートフォンの問題点


 ストレージ領域が限定されてしまう

 コンテンツの大容量化しているため端末内に保存できる件数
 ベースではほぼほぼ変わりがない

 大容量ストレージの利用も32GB程度が上限となる

 すべてのコンテンツを持ち出すことは難しい
個人的な問題点


 お風呂でひま。音楽ききたい。

 IS12Tに音楽入れたら埋まった。足りない。

 カーナビあるけどSDしか読めない。USB使えない。

 いまさら音楽CD焼くとかありえない。めんどい。

 携帯の電池切れたら音楽聞けなくなるとかちょっと…
解決策の検討
Everything in the cloud…


 スマートフォンはネットワークに接続されていることを想定
 してよい

 データはどこか1か所にあればよい

 自宅クラウドからストリーミングで配信すれば携帯端末の容
 量制限に縛られることもない

 すべてはクラウドに集約する
解決策


 スマートフォンで足りない容量のメディアファイルを外部
 サービスに丸投げできるわけがない

  全部自前で賄おう

 自宅クラウドを有効活用する

  自宅なら数テラバイトのストレージがありますよね?

 巨大ストレージの玄関としてのスマートフォン
実装
想定環境

 デバイス
  Fujitsu IS12T
      Windows Phone 7.5
      RAM: 512MB
      ROM: 32GB
      WiFi & 3G

 サーバ
  Linux 2.6
  PHP 5.3
実装方法


 BackgroundAudioAgent を使用する

   他のアプリを使用中でも音楽が聴ける

   ロック画面中でも大丈夫

 配信サーバは新規実装する

 ようするに全部作る

 Orb流用とかおもしろくない
おさらい
実装
登場人物

 AudioPlayerAgent クラス
   バックグラウンドでオーディオを再生するように特別に設計された
    BackgroundAgent の実装
     MSDN - http://msdn.microsoft.com/ja-jp/library/microsoft.phone.backgroundaudio.audioplayeragent(v=vs.92)


 TagLib
   TagLib is a library for reading and editing the meta-data of
    several popular audio formats.
     TagLib - http://taglib.github.com/


 その他いろいろ
サーバの実装
実装
サーバを実装する

 APIがないと話にならないので実装します
 PHPで全部書きます
 DBはSqlite、ID3v2タグはTagLibで解析します
   モジュールが足りない?ビルドしてください
 リクエストされたらSqliteのDBをもとにしてXMLを返します
 楽曲ごとにIDを割り振ります
 データはてきとうにどうにかします
できました


 クライアントからの呼び出しに応答するWeb実装ができまし
 た

 DBはターミナルから作りましょう

 自動的に更新?Cronでどうぞ
クライアントの実装
実装
クライアントを実装する

 新規プロジェクトを作成
   PhoneApp1を作ります
 BackgroundAudioPlayerプロジェクトを追加
 BackgroundAudioPlayerプロジェクトの参照を
  PhoneApp1へ追加
 ReactiveExtensionとWebClientとXElementあたりでサーバ
  と通信するコードを書きます
 BackgroundAudioPlayerを叩き起こします
できました


 Windows Phoneから自宅クラウドを通して音楽が聴けるよ
 うになりました

 インターネット接続があればどこでも大丈夫

 端末容量に悩むことはもうありません
評価
実際に使用してみる


 IS12Tは防水。当初計画していたお風呂で使用する。

  もちろんネットワークは自宅の無線LANです

 十分に動く

 とてもよい
実際に使用してみる - 屋外編

 屋外での使用は必然的にインターネット越しになる
  十分なアクセス制限を設ける
  e.g. VPN越しのみアクセス可能など
    Windows PhoneはVPNができない?DWR-PGをVPNルータにすればいい
     よ!

 意外と聞ける
 新東名走っててもほとんど途切れません
 とてもいいかんじ
まとめ
できたこと


 配信サーバを作った

 再生アプリを作った

 お風呂と新東名でフィールドテストした

 ずっと再生されるのはまるで某Music Unなんとかみたい!
Q&A
ご清聴ありがとうございました

More Related Content

Similar to 某Music unなんとか

I padsoftwaredevelopment
I padsoftwaredevelopmentI padsoftwaredevelopment
I padsoftwaredevelopmentVu Hung Nguyen
 
Ipad software development
Ipad software developmentIpad software development
Ipad software developmentvinicorp
 
#padlab タブレットレビュー会
#padlab タブレットレビュー会#padlab タブレットレビュー会
#padlab タブレットレビュー会Manabu Uekusa
 
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )LiLz Inc.
 
第1回スマートフォン講座
第1回スマートフォン講座第1回スマートフォン講座
第1回スマートフォン講座Shinichi Kosaki
 

Similar to 某Music unなんとか (7)

ePublishing2013
ePublishing2013ePublishing2013
ePublishing2013
 
I padsoftwaredevelopment
I padsoftwaredevelopmentI padsoftwaredevelopment
I padsoftwaredevelopment
 
Ipad software development
Ipad software developmentIpad software development
Ipad software development
 
オレオレ家電
オレオレ家電オレオレ家電
オレオレ家電
 
#padlab タブレットレビュー会
#padlab タブレットレビュー会#padlab タブレットレビュー会
#padlab タブレットレビュー会
 
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )
GTC Japan 2018 Inception Award 登壇資料( LiLz Inc. )
 
第1回スマートフォン講座
第1回スマートフォン講座第1回スマートフォン講座
第1回スマートフォン講座
 

More from Yutaka Tsumori

未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないためにYutaka Tsumori
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完Yutaka Tsumori
 
Windows phoneの新しい通知api
Windows phoneの新しい通知apiWindows phoneの新しい通知api
Windows phoneの新しい通知apiYutaka Tsumori
 
せっけーのおはなし
せっけーのおはなしせっけーのおはなし
せっけーのおはなしYutaka Tsumori
 
Community Open Day 沖縄
Community Open Day 沖縄Community Open Day 沖縄
Community Open Day 沖縄Yutaka Tsumori
 
Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Yutaka Tsumori
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!Yutaka Tsumori
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!Yutaka Tsumori
 
Twitter Client for ZSH
Twitter Client for ZSHTwitter Client for ZSH
Twitter Client for ZSHYutaka Tsumori
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJavaYutaka Tsumori
 
20120922 wdc with_ms_like
20120922 wdc with_ms_like20120922 wdc with_ms_like
20120922 wdc with_ms_likeYutaka Tsumori
 
Androidのおはなし++
Androidのおはなし++Androidのおはなし++
Androidのおはなし++Yutaka Tsumori
 

More from Yutaka Tsumori (20)

Buri2019
Buri2019Buri2019
Buri2019
 
Setsな話
Setsな話Setsな話
Setsな話
 
XAMLで条件分岐
XAMLで条件分岐XAMLで条件分岐
XAMLで条件分岐
 
BuriKaigi2018
BuriKaigi2018BuriKaigi2018
BuriKaigi2018
 
未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために未来(あす)Xamlの1msに泣かないために
未来(あす)Xamlの1msに泣かないために
 
Blync light for HACK
Blync light for HACKBlync light for HACK
Blync light for HACK
 
Aristeaのこと
AristeaのことAristeaのこと
Aristeaのこと
 
Aristeaのコード補完
Aristeaのコード補完Aristeaのコード補完
Aristeaのコード補完
 
Windows phoneの新しい通知api
Windows phoneの新しい通知apiWindows phoneの新しい通知api
Windows phoneの新しい通知api
 
せっけーのおはなし
せっけーのおはなしせっけーのおはなし
せっけーのおはなし
 
Community Open Day 沖縄
Community Open Day 沖縄Community Open Day 沖縄
Community Open Day 沖縄
 
Twitter Client for ZSH (2)
Twitter Client for ZSH (2)Twitter Client for ZSH (2)
Twitter Client for ZSH (2)
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!
 
PhoneからPCへ。
PhoneからPCへ。PhoneからPCへ。
PhoneからPCへ。
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
Twitter Client for ZSH
Twitter Client for ZSHTwitter Client for ZSH
Twitter Client for ZSH
 
AndroidではじめるJava
AndroidではじめるJavaAndroidではじめるJava
AndroidではじめるJava
 
20120922 wdc with_ms_like
20120922 wdc with_ms_like20120922 wdc with_ms_like
20120922 wdc with_ms_like
 
たのアプLt
たのアプLtたのアプLt
たのアプLt
 
Androidのおはなし++
Androidのおはなし++Androidのおはなし++
Androidのおはなし++
 

某Music unなんとか