某music unなんとか

29
Music Unなんとか みたいなことがしたい 2012.08.24 スマートフォン勉強会@関東 #20 tmyt

Upload: shigure

Post on 03-Jul-2015

180 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 某Music unなんとか

某Music Unなんとかみたいなことがしたい2012.08.24 スマートフォン勉強会@関東 #20

tmyt

Page 2: 某Music unなんとか

こんにちは

tmytといいます

今年で19歳になります

アマグラマからプログラマにクラスチェンジしました

スマートフォンはこんなの使ってます

Fujitsu IS12T(カーオーディオ)

Sony Xperia SX(定期券)

Apple iPhone(ゲーム機)

Paasonic 822P(薄い電話)

Page 3: 某Music unなんとか

おしながき

問題と背景

解決策の検討

実装

評価

Page 4: 某Music unなんとか

問題と背景

Page 5: 某Music unなんとか

Q.あなたの音楽ライブラリのサイズは?

10MB?

100MB?

1GB?

10GB?

More music…?

Page 6: 某Music unなんとか

Q.あなたの携帯のNAND領域は?

128GB?

64GB?

32GB?

16GB?

Less storage…?

Page 7: 某Music unなんとか

スマートフォンの問題点

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

コンテンツの大容量化しているため端末内に保存できる件数

ベースではほぼほぼ変わりがない

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

すべてのコンテンツを持ち出すことは難しい

Page 8: 某Music unなんとか

個人的な問題点

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

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

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

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

携帯の電池切れたら音楽聞けなくなるとかちょっと…

Page 9: 某Music unなんとか

解決策の検討

Page 10: 某Music unなんとか

Everything in the cloud…

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

してよい

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

自宅クラウドからストリーミングで配信すれば携帯端末の容

量制限に縛られることもない

すべてはクラウドに集約する

Page 11: 某Music unなんとか

解決策

スマートフォンで足りない容量のメディアファイルを外部

サービスに丸投げできるわけがない

全部自前で賄おう

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

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

巨大ストレージの玄関としてのスマートフォン

Page 12: 某Music unなんとか

実装

Page 13: 某Music unなんとか

想定環境

デバイス

Fujitsu IS12T

Windows Phone 7.5

RAM: 512MB

ROM: 32GB

WiFi & 3G

サーバ

Linux 2.6

PHP 5.3

Page 14: 某Music unなんとか

実装方法

BackgroundAudioAgent を使用する

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

ロック画面中でも大丈夫

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

ようするに全部作る

Orb流用とかおもしろくない

Page 15: 某Music unなんとか

おさらい実装

Page 16: 某Music unなんとか

登場人物

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なんとか

サーバの実装実装

Page 18: 某Music unなんとか

サーバを実装する

APIがないと話にならないので実装します

PHPで全部書きます

DBはSqlite、ID3v2タグはTagLibで解析します

モジュールが足りない?ビルドしてください

リクエストされたらSqliteのDBをもとにしてXMLを返します

楽曲ごとにIDを割り振ります

データはてきとうにどうにかします

Page 19: 某Music unなんとか

できました

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

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

自動的に更新?Cronでどうぞ

Page 20: 某Music unなんとか

クライアントの実装実装

Page 21: 某Music unなんとか

クライアントを実装する

新規プロジェクトを作成

PhoneApp1を作ります

BackgroundAudioPlayerプロジェクトを追加

BackgroundAudioPlayerプロジェクトの参照をPhoneApp1へ追加

ReactiveExtensionとWebClientとXElementあたりでサーバと通信するコードを書きます

BackgroundAudioPlayerを叩き起こします

Page 22: 某Music unなんとか

できました

Windows Phoneから自宅クラウドを通して音楽が聴けるよ

うになりました

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

端末容量に悩むことはもうありません

Page 23: 某Music unなんとか

評価

Page 24: 某Music unなんとか

実際に使用してみる

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

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

十分に動く

とてもよい

Page 25: 某Music unなんとか

実際に使用してみる - 屋外編

屋外での使用は必然的にインターネット越しになる

十分なアクセス制限を設ける

e.g. VPN越しのみアクセス可能など

Windows PhoneはVPNができない?DWR-PGをVPNルータにすればいいよ!

意外と聞ける

新東名走っててもほとんど途切れません

とてもいいかんじ

Page 26: 某Music unなんとか

まとめ

Page 27: 某Music unなんとか

できたこと

配信サーバを作った

再生アプリを作った

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

ずっと再生されるのはまるで某Music Unなんとかみたい!

Page 28: 某Music unなんとか

Q&A

Page 29: 某Music unなんとか

ご清聴ありがとうございました