Thursday, August 7, 2014

Box.netに対応してみました

Box.net のユーザがJUST PLAYERを使っているということなので対応してみました。




https://bitbucket.org/yokmama/just-player/downloads/JUSTPLAYER3_v4.0_314190007.apk

まだ色々変なところがありますが、そういうところはどんどん報告していただければ優先的に修正します。

(追記)トークンの期限が切れた後の処理があんまりよろしくないので、一旦アプリ終了したあと、再度起動しストリーミングが必要なファイルを再生すると落ちるようです。
面倒ですが、アプリ起動後はファイルの選択をしなおしてください。
(追記の追記)あぁ、、ずーっと再生していると、トークンが古くなって更新しないとだめなんだね、これも更新してないのでしばらくすると再生されなくなるようです。
修正せねば、、


Box.netの対応はおもったより面倒くさかったです。
旧JUSTPLAYERのときは、BoxnetAPIではOAuth認証がV1だったのですが、新しいSDKは V2なったので使い方ががっつり変わっていました。
なにより面倒くさかったのは、ファイルアクセスの部分、V2のAPIとしてAndroid用に提供されているSDKだとファイルのダウンロード処理でResponsを取得できるAPIがなかったため、HttpResponsHeaderの生成が出来なくて詰みました。
一時はあきらめようかとおもったのですが、AndroidSDKの上位にあたる、おおもとのBoxAPIのソースコードを参照することができたので、それを参考にAndorid用のBoxAPIのSDKを拡張し、なんとか対応できました。
けっこう強引なことをしているので、まだRange指定(シークによる曲の再生)がうまくいっていません。
この辺はおいおい対応していこうかとおもっています。

ちなみに本バージョンから、Navigationドロワーに表示されるクラウド・ストレージは設定がされていないものは表示されなくなっています。

ですので、Configから認証処理をしておいてください。
認証が成功していると、Navigationドロワーに表示されます。

あと、キャッシュフォルダを変更できるようにしました。
SDカードにキャッシュフォルダを移動できるのでストレージ容量が少ないのが理由でちゃんと動かなかった人もこれでうまく動くようになるのではないかと思います。


上記メニューの「Choose location cache file」でキャッシュ用のフォルダを指定できます。フォルダは隠しフォルダになるのでファイルは見えません。

「Clear cache」でキャッシュ内のファイルを消してくれます。

ちなみに、キャッシュフォルダを移動する際に古いフォルダのキャッシュが消されます、そして、そのときに新しいフォルダにキャッシュは移動しません。(つまり移動処理はまだ実装していません。)

No comments:

Post a Comment