Help us understand the problem. What is going on with this article?

「Toro: RecyclerViewのスクロールに対してビデオを自動再生・中止するライブラリ」を作りました

More than 3 years have passed since last update.

TL,DR:

ソースコードと仕様がここからアクセスできますから、是非楽しんでください

https://github.com/eneim/Toro

WHY? なぜ?

モチベーション

FacebookやTwitterさんがやっているからなんとかやりたいね

ライブラリの性能一覧、あるいはやりたいこと(案)

  • メインな草案

    • スクロールが止まったら、自動再生をトリガーする。
    • ビデオがスクリーンの中に「綺麗」に見えないと再生しない
      • 「綺麗」という基準がなんとか人間で決められるもの
  • 拡張機能

    • 再生時刻のキャッシュや復元
    • 長押しで、なんとかする
    • 簡単なリストだけでなく、グリッドもサポートする(ビデオ数が多いと、配置がさらに複雑な違い)
    • 「再生戦略」というものを使用して、再生しかたを決める
    • 「再生ライフサイクル」を定義し、なんとか使えるようにする
    • 。。。(実装しながら考える)

以上の機能を頭の中に置いて、なんとかします。

HOW? どう実装すた?

初心者のようなコードでToroを書きました。詳しくは、

https://github.com/eneim/Toro

で確認ください

だいたい、Interface design patternっぽい仕組みで、コア部分を定義し、Toroという神様クラスでつなぐ。あとはカスタマイズViewやViewHolderなどを用意しました。

一応RepoのWikiをご覧ください

WHAT? 作ったものの姿

もう一回、

https://github.com/eneim/Toro

の使用やWiki確認ください。

Toro in action が次のようになります。Repo内にサンプルアプリがありますので、確認してみてください

Sample 1: Vertical linear RecyclerView with one Video

Sample 1: Vertical linear RecyclerView with one Video

Sample 2: Vertical staggered RecyclerView with items are Videos

Sample 2

Sample 3: Vertical staggered RecyclerView with items are Videos - Long press enabled (基本的、横にすると長押しが有効になります)

Sample 3

Sample 4: Vertical Grid RecyclerView with multiple type of ViewHolder

Sample 4

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

Sample 5

まとめ

一応紹介が以上となります。なんとかissueがあれば、ぜひあげてください。利用することになる方もフィードバックをよろしくお願いします。

eneim
the simple, the best
http://ene.im
givery
Giveryは社会を豊かにする人々のための成長エコシステムを創造する「成長」支援企業です。ITとリアルの両軸で事業を展開し、お客様・ユーザーの皆様・社員・社会の成長を全力で応援します。
https://givery.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away