Download - 某Music unなんとか
![Page 1: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/1.jpg)
某Music Unなんとかみたいなことがしたい2012.08.24 スマートフォン勉強会@関東 #20
tmyt
![Page 2: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/2.jpg)
こんにちは
tmytといいます
今年で19歳になります
アマグラマからプログラマにクラスチェンジしました
スマートフォンはこんなの使ってます
Fujitsu IS12T(カーオーディオ)
Sony Xperia SX(定期券)
Apple iPhone(ゲーム機)
Paasonic 822P(薄い電話)
![Page 3: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/3.jpg)
おしながき
問題と背景
解決策の検討
実装
評価
![Page 4: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/4.jpg)
問題と背景
![Page 5: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/5.jpg)
Q.あなたの音楽ライブラリのサイズは?
10MB?
100MB?
1GB?
10GB?
More music…?
![Page 6: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/6.jpg)
Q.あなたの携帯のNAND領域は?
128GB?
64GB?
32GB?
16GB?
Less storage…?
![Page 7: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/7.jpg)
スマートフォンの問題点
ストレージ領域が限定されてしまう
コンテンツの大容量化しているため端末内に保存できる件数
ベースではほぼほぼ変わりがない
大容量ストレージの利用も32GB程度が上限となる
すべてのコンテンツを持ち出すことは難しい
![Page 8: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/8.jpg)
個人的な問題点
お風呂でひま。音楽ききたい。
IS12Tに音楽入れたら埋まった。足りない。
カーナビあるけどSDしか読めない。USB使えない。
いまさら音楽CD焼くとかありえない。めんどい。
携帯の電池切れたら音楽聞けなくなるとかちょっと…
![Page 9: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/9.jpg)
解決策の検討
![Page 10: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/10.jpg)
Everything in the cloud…
スマートフォンはネットワークに接続されていることを想定
してよい
データはどこか1か所にあればよい
自宅クラウドからストリーミングで配信すれば携帯端末の容
量制限に縛られることもない
すべてはクラウドに集約する
![Page 11: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/11.jpg)
解決策
スマートフォンで足りない容量のメディアファイルを外部
サービスに丸投げできるわけがない
全部自前で賄おう
自宅クラウドを有効活用する
自宅なら数テラバイトのストレージがありますよね?
巨大ストレージの玄関としてのスマートフォン
![Page 12: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/12.jpg)
実装
![Page 13: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/13.jpg)
想定環境
デバイス
Fujitsu IS12T
Windows Phone 7.5
RAM: 512MB
ROM: 32GB
WiFi & 3G
サーバ
Linux 2.6
PHP 5.3
![Page 14: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/14.jpg)
実装方法
BackgroundAudioAgent を使用する
他のアプリを使用中でも音楽が聴ける
ロック画面中でも大丈夫
配信サーバは新規実装する
ようするに全部作る
Orb流用とかおもしろくない
![Page 15: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/15.jpg)
おさらい実装
![Page 16: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/16.jpg)
登場人物
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/
その他いろいろ
![Page 17: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/17.jpg)
サーバの実装実装
![Page 18: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/18.jpg)
サーバを実装する
APIがないと話にならないので実装します
PHPで全部書きます
DBはSqlite、ID3v2タグはTagLibで解析します
モジュールが足りない?ビルドしてください
リクエストされたらSqliteのDBをもとにしてXMLを返します
楽曲ごとにIDを割り振ります
データはてきとうにどうにかします
![Page 19: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/19.jpg)
できました
クライアントからの呼び出しに応答するWeb実装ができまし
た
DBはターミナルから作りましょう
自動的に更新?Cronでどうぞ
![Page 20: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/20.jpg)
クライアントの実装実装
![Page 21: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/21.jpg)
クライアントを実装する
新規プロジェクトを作成
PhoneApp1を作ります
BackgroundAudioPlayerプロジェクトを追加
BackgroundAudioPlayerプロジェクトの参照をPhoneApp1へ追加
ReactiveExtensionとWebClientとXElementあたりでサーバと通信するコードを書きます
BackgroundAudioPlayerを叩き起こします
![Page 22: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/22.jpg)
できました
Windows Phoneから自宅クラウドを通して音楽が聴けるよ
うになりました
インターネット接続があればどこでも大丈夫
端末容量に悩むことはもうありません
![Page 23: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/23.jpg)
評価
![Page 24: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/24.jpg)
実際に使用してみる
IS12Tは防水。当初計画していたお風呂で使用する。
もちろんネットワークは自宅の無線LANです
十分に動く
とてもよい
![Page 25: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/25.jpg)
実際に使用してみる - 屋外編
屋外での使用は必然的にインターネット越しになる
十分なアクセス制限を設ける
e.g. VPN越しのみアクセス可能など
Windows PhoneはVPNができない?DWR-PGをVPNルータにすればいいよ!
意外と聞ける
新東名走っててもほとんど途切れません
とてもいいかんじ
![Page 26: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/26.jpg)
まとめ
![Page 27: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/27.jpg)
できたこと
配信サーバを作った
再生アプリを作った
お風呂と新東名でフィールドテストした
ずっと再生されるのはまるで某Music Unなんとかみたい!
![Page 28: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/28.jpg)
Q&A
![Page 29: 某Music unなんとか](https://reader036.vdocuments.pub/reader036/viewer/2022081512/559581fb1a28ab09548b45ec/html5/thumbnails/29.jpg)
ご清聴ありがとうございました