2016-08-11 12 views
12

UICollectionviewセルでビデオを再生しようとしていますZOWVideoPlayerです。動画は完璧に再生されていますが、現在コレクションビューはすべての表示動画を再生しています。完全に見える単一のビデオだけを再生したい。これは、スクロール処理によって切り取られない現在のビデオを意味します(ピクセルは画面外ではなく完全に表示されます)。UICollectionviewを使ってFacebookスタイルのビデオを再生する方法

私もscrollviewデリゲートメソッドで完全な可視のセルをチェックするためのコードを追加しましたが、その後、私のcollectionviewは、1または2秒のために立ち往生してから移動するので、私を助けてくださいます。

最初に質問を読んでから投票を行ってください。ここで

は、私はあなたのメソッドが複数回呼び出さなっている疑いがチェック見えるセル

- (void)checkVisibilityOfCell:(CustomCell *)cell inScrollView:(UIScrollView *)aScrollView { 
    @try { 
     CGRect cellRect = [aScrollView convertRect:cell.frame toView:aScrollView.superview]; 
     if (cell.videoPlayer) { 
      if (CGRectContainsRect(aScrollView.frame, cellRect)){ 
       //Play Video 
      } 
      else{ 
       //Pause Video 
      } 
     } 
    } @catch (NSException *exception) { 

    } @finally { 

    } 
} 
+0

あなたの質問を明確にするためにチェックする可視セルのコードを追加してください。 –

+0

私は質問を更新してくださいそれを確認してください – Hardik

+0

_ passer-by advice _... @Hardik、**(1)**コーディング言語タグを追加してください。それは 'Swift'(あるいは' Obj-C')ですか?答えを知っている誰かがあなたの現在の指定されたタグを見ていないかもしれませんが、私たちはすべてコーディング言語をチェックしていますか?**(2)** "Facebookスタイルのビデオ"とは何ですか?目的の記述を改善してください(スクリーンに集中したとき、または少なくともスクロール位置がピクセルをトリミングしないと再生する必要があることが確認されました。そうでなければ自動的に一時停止する必要があります)。どのようにポジションをチェックしていますか? –

答えて

1

ためのコードです。あなたはプレーヤーの存在を確認するだけです。プレーヤーの状態をもう一度チェックしてみませんか?プレイヤーがプレイしている場合は、無視してください。

if (CGRectContainsRect(aScrollView.frame, cellRect) && !isPlaying) { 

isPlaying - >あなたはプレイヤーの現在の状態に

・ホープ、このメイクセンスを格納するために追加することができます列挙型;)

+0

私はそれがスクロール中に画面上のビデオの位置についてだと思います。新しい質問の編集が助けになるかどうかを確認してください... –

+0

@ VC.One絶対にそれは位置によるものです。ビデオが画面上に完全に表示されている限り、デリゲートメソッドが呼び出されます。したがって、プレイヤーが「再生」メソッドを1回だけ呼び出すことを保証すれば、遅れに直面することはありません。私が遅れの主な原因が複数回呼ばれていることが疑わしいからです。 –

+0

私はSwift/Obj-C(Askerは 'video'タグをつけたので見られます)を使用しません。微妙なスクロールで部分的にしか見えなくなると、ビデオは自動的に一時停止しますか?新しい「最も目に見える」セルの次の動画が自動再生されますか?それが本当であれば、正しい答えが得られるでしょう。しかしそれはAskerが確認することです... –

関連する問題