某Music unなんとか

Preview:

Citation preview

某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

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

Recommended