みずぴー日記

月に行こうという目標があったから、アポロは月に行けた。飛行機を改良した結果、月に行けたわけではない。

AppleTV優先権問題を解決する

以下のことを可能にするアプリを作りました。

  1. AppleTVをテレビにつなぐ
  2. 同じネットワーク内でホストとなるPCを立ち上げる
  3. iPhoneから曲をPCに転送する
  4. PCが、転送された順に音楽をAppleTVでAirPlayする

これによって21世紀のチャンネル権戦争ことAppleTV優先権問題を解決します。

f:id:mzp:20140714080103j:plain

アジェンダ

  • AppleTV優先権問題とは
  • PartyPlayによる解決
  • デモ動画
  • どういうときに使うか
  • インストール方法
  • どのように開発したか

AppleTV優先権問題とは

f:id:mzp:20140714080056j:plain

AppleTV + AirPlayによって、各自が所持している音楽をBGMとして利用することができます。

しかしAirPlayは後勝ちのプロトコルのため、複数人が同時に再生しようとしても、最後の人の音楽しか再生されません。そのため、各自が好きな音楽をかけるには、BGM係を決める等の運用が必要です。いまわしき運用での回避です。

PartyPlayによる解決

f:id:mzp:20140714080105p:plain そこでPartyPlayという名前のアプリを作りました。これはiPhoneアプリとWebアプリでセットになっています。

iPhoneアプリでできること

  • BonjourでWebアプリが起動しているサーバを探す
  • Musicライブラリから音楽を選択し、Webアプリに送信する

Webアプリでできること

  • Bonjourに自分を公開する
  • 送信された音楽データを保存する。*1
  • 送信された音楽を順にAirPlayで再生する

それ以外にも以下のことができます。

  • 現在再生されている曲/次に再生される曲を表示する
  • 現在再生されている曲をスキップして次の曲に進む

デモ動画

PartyPlay demo from MIZUNO Hiroki on Vimeo.

どういうときに使うか

以下のような場合に利用することを想定しています。

  • 開発合宿
  • シェアハウス
  • その他、複数人でBGMを流し合いたいとき

f:id:mzp:20140714080049j:plain

インストール方法

Webアプリはgithubで公開しています。 iPhoneアプリApp Storeに申請中です。リジェクトされた場合は、ソースコードを公開しますので、各自でビルドしてください。

どのように開発したか

(tl;dr)

使う上では不要な余談です。

このアプリは熱海の温泉宿で実施した開発合宿の成果です。5人で2日ほどかけて作っています。工数は10人日です。

f:id:mzp:20140714080052j:plain

得られた知見は以下の通りです。

  • 半透明 + blurをすると見た目が格好よくなる。
  • 宿のネットワーク環境が貧弱だと辛い。
  • AppleTVとテレビは便利。家にあっても損はない。
  • Bonjourによるサービス ディスカバリーは便利。21世紀にもなってIPアドレスを口頭で伝えあうのはダサい。

f:id:mzp:20140714080058j:plain f:id:mzp:20140714080054j:plain f:id:mzp:20140714080101j:plain

*1:再生が終わった時点で、音楽データは削除されます