TL,DR:
ソースコードと仕様がここからアクセスできますから、是非楽しんでください
WHY? なぜ?
モチベーション
FacebookやTwitterさんがやっているからなんとかやりたいね
ライブラリの性能一覧、あるいはやりたいこと(案)
-
メインな草案
- スクロールが止まったら、自動再生をトリガーする。
- ビデオがスクリーンの中に「綺麗」に見えないと再生しない
- 「綺麗」という基準がなんとか人間で決められるもの
-
拡張機能
- 再生時刻のキャッシュや復元
- 長押しで、なんとかする
- 簡単なリストだけでなく、グリッドもサポートする(ビデオ数が多いと、配置がさらに複雑な違い)
- 「再生戦略」というものを使用して、再生しかたを決める
- 「再生ライフサイクル」を定義し、なんとか使えるようにする
- 。。。(実装しながら考える)
以上の機能を頭の中に置いて、なんとかします。
HOW? どう実装すた?
初心者のようなコードでToroを書きました。詳しくは、
で確認ください
だいたい、Interface design patternっぽい仕組みで、コア部分を定義し、Toroという神様クラスでつなぐ。あとはカスタマイズViewやViewHolderなどを用意しました。
一応RepoのWikiをご覧ください
WHAT? 作ったものの姿
もう一回、
の使用やWiki確認ください。
Toro in action が次のようになります。Repo内にサンプルアプリがありますので、確認してみてください
Sample 1: Vertical linear RecyclerView with one Video
Sample 2: Vertical staggered RecyclerView with items are Videos
Sample 3: Vertical staggered RecyclerView with items are Videos - Long press enabled (基本的、横にすると長押しが有効になります)
Sample 4: Vertical Grid RecyclerView with multiple type of ViewHolder
Sample 5: Overall visual, sample with 2 RecyclerViews, one Horizontal and one Vertical Staggered with a long portrait Video. Long press enabled for Horizontal RecyclerView
まとめ
一応紹介が以上となります。なんとかissueがあれば、ぜひあげてください。利用することになる方もフィードバックをよろしくお願いします。