この金土日(6/15〜17)に開発合宿に行ってきたのですが、その成果として、以前から構想していた「liveDJs」というandroidアプリ(Titanium製)を作りました。
それなに?
ライブ配信されるクラブ系ミュージックの放送開始を通知、また再生できるandroid用アプリです
アプリの画面イメージ
最初の画面、番組一覧です。on air がライブ配信中の番組になります。
再生画面その1。block.fmという番組の再生画面です。
通知画面。配信が始まると通知されます。
どうして作ったの?
みなさん、お仕事される際に音楽聞きながらという方も多いかと思うのですが、私もその一人です。特に最近聞いてるのが、クラブ系ミュージックのライブ配信です。
アゲアゲな音楽が多く、テンションもあがってノリノリで仕事できます!
で、こういう音楽配信サービスを仕事用PCで聞く場合、少々問題がありました。
- いつ配信スタートするかいつも把握しているわけでないので聞き逃すことがある
- 配信番組サービスが複数サイトあるので、余計に把握しきれない
- ライブ配信サービスを使っていると、結構PCのリソースを食う
これらの問題を解決すべく作ったのがliveDJsです。
liveDJsの特徴
androidアプリ
アプリにしたことで、作業pcのリソース食いません!
これで、PCはサクサク〜なままノリノリ〜で作業できます。
各番組のライブ配信チェック&通知
配信チェックを定期的にする(アプリを閉じてもバックグラウンドでチェックする)ので、配信スケジュールなんてチェックしなくてもいいんです!見逃せない配信が、そこにある!むむっ!
ライブ配信
配信通知を受けたら、アプリ起動でそのまま配信が聞けちゃいます!!便利!!!
サービス全体像
現在用意している番組は、今のところ
の3番組で、これらの配信チェックを行っております。で、以下のような構成で動いています。
- 配信チェックサーバが各番組の配信チェックを定期的に行う
- 配信チェックサーバに対して、アプリから配信ステータスを定期的に取得
- 配信ステータスが配信中の場合、アプリから各サービスのライブ配信を取得
配信チェックサーバっているの?
配信チェックサーバが無くても、ライブ配信は受信できました。
しかし、それだと、端末台数分だけ配信チェックリクエストが増えてしまうことで、
- 単純に各サービス配信サーバへの負荷をかけてしまう
- ustream APIのリクエスト上限(1日5000リクエスト)を簡単に超えてしまう
という問題がありました。
そこで、間にサーバを立てて、apiを使った処理はサーバに任せて、端末は配信取得のみ処理させました。
(block.fmに関してはapiはなかったのですが、playerのリクエストを覗いてapi的に利用させてもらってます)
ustream api
詳細はdocumentに委ねますが、今回使ったのはたったの2つ。Channel Commandsの
- getInfo:このレスポンスのstatusパラメータで配信中か否か判定します
- CustomEmbedTag:これが配信プレイヤーのhtmlを返します
getInfoで配信中と判定すれば、CustomEmbedTagで取得したhtmlを配信チェックサーバに保存しています。
で、そのhtmlを受信した端末が、各配信サービスにflash経由で配信してもらうという流れです。
課題とか今後の展開
- アイコンをなんとかせねば!
- バックグラウンドでライブ配信をチェックしているservice機能は動いているのですが、そこから直接アプリを呼び出せるようにする
- 番組をユーザから募集して、増やしていきたい。
- これで得た技術で、もっと対象ユーザの広い別のアプリ作れるなー、と妄想中
おまけ
最後まで読んでくれた方にプレゼント。開発中の野良アプリですがliveDJsを興味ある方はDLしてインストールしてみてください。ご意見やフィードバッグは@papettoTVまでお願いします。
Pingback: 開発合宿関西4に参加しました | Re* Programming