Avatar
初めまして質問させて頂く「やました」と言います! よろしくお願いいたします! 現在SNSアプリでよく見かける、リストの途中に動画が挟み込んで自動再生するUI(Twitterアプリを参考)を作成しています! 以下の構成で作成しているのですが、動画セルを再利用した時に動画を途中から再生を行いたいのですが、Twitterアプリに比べると動画がスムーズ(URL設定→seekで指定時に側反映されないためDispatchで遅延処理をしている)に再生することができません...。 皆さんどうやってあんなにスムーズに途中から再生できてるんだ...!🧐 何か参考のサイトや、アドバイス頂けますと幸いです🥺 よろしくお願いいたします! # 構成 ├── UITableView │ └── VideoCell(UITableViewCell継承のCustomClass) │ ├── currentTime(動画再生時間を保持するメンバ) │ ├── VideoView(UIView継承のCustomClass) │ │ └── AVPlayer │ │ └── AVPlayerItem │ │ └── AVPlayerLayer # 作りたいもの Twitterアプリのタイムラインで表示される動画のUI # 機能 UITableView上で動画を再生・一時停止   1. スクロール時、動画のcellが画面内に収まっている場合は動画を再生   2. スクロール時、動画のcellが画面外に出ている場合は動画を一時停止 # やっている事 スクロール時に再生・一時停止の処理   1. ScrollViewのdelegate `scrollViewDidScroll` で最上部・最下部のCGPointを取得   2. 1で取得したCGPointからindexPathを取得   3. 2で取得したindexPathからcellを取得   4. 3で取得したcellのframeと画面上部、画面下部のcontentOffset.yを計算して、収まっている or 収まっていないを判定   5. 判定結果により、動画を再生 or 一時停止 # うまくいかない所 一度再生した動画セルが画面外に行き、再度画面内に来た時にスムーズに続きから再生されない   a. AVPlayerItemに動画URLを設定   b. AVPlayerのreplaceCurrentItemで設定   c. AVPlayerのseekで保持していた再生時間を指定(そのまま指定すると反応しない?のでDispatchで遅延実行しています)