UICollectionView에 대한 가로 흐름 레이아웃이 있습니다. 각 셀은 전체 화면을 차지하고 페이징은 켜져 있습니다. 각 셀에는 MPMoviePlayerController도 포함되어 있으며 문제없이 비디오를 재생할 수 있습니다. 그러나 왼쪽 또는 오른쪽으로 스크롤하면 현재 표시된 동영상 (이 시점에서 일시 중지됨)이 사라지고 플레이어보기가 검은 색으로 변합니다. 그런 다음 재생을 시작하면 비디오가 다시 나타납니다. 어떻게 든 비디오 visibile,하지만 성공하지 않고 유지하려면 scrollview 대리자 메서드를 prepareToPlay 추가했습니다.UICollectionViewCell에서 스크롤 할 때 MPMoviePlayerController가 공백이됩니다.
0
A
답변
3
한 번에 MPMoviePlayerController
의 인스턴스를 하나만 사용할 수 있습니다. 이는 MPMoviePlayerController
의 제한 사항입니다.
경우에 따라 스크롤을 시작할 때 적어도 2 개의 MPMoviePlayerController
을 초기화하고 비디오를 재생해야합니다. MPMoviePlayerController
으로는 불가능합니다.
동일한 화면에서 동시에 여러 비디오를 재생하려면 AVFoundation
을 사용하는 것이 좋습니다. 그리고 AVFoundation
을 기반으로 한 오픈 소스 비디오 플레이어가 있습니다. 그 중 하나는 AVFoundation
플레이어를 처음부터 만드는 것보다 쉬울 것입니다.
1
컬렉션보기를 스크롤하면 보이지 않는 셀이 컬렉션보기 "재사용 가능한 풀"메커니즘에 의해 다시 사용되므로 기존 무비 플레이어가 제거되고 상태가 재설정됩니다. 셀보기가 다시 표시되면 풀에서 뷰를 가져오고 (풀이 비어 있으면 새 뷰가 만들어 짐) 뷰를 다시 구성해야합니다.
- 간단한 솔루션을 : 당신이 그런 상황에서 할 수있는 일 (예를 들어 셀 인덱스 경로 좌표를 사용하여) 모든 단일 콜렉션 뷰 셀에 고유 한 식별자를 부여, 그래서 재활용되지 않습니다. 이 방법을 다시 생각해보십시오 : 많은 셀을 가지고 있다면 모든 새로운 셀이 처음부터 다시 만들어지기 때문에 메모리 문제가 발생할 수 있습니다. 그리고 영화 플레이어 컨트롤러는 무시할 수없는 메모리를 사용합니다.
- 더 복잡한 해결책 : 모든 단일 영화 플레이어 상태 (재생 시간, 비디오 URL, 해당 매개 변수를 관찰하거나 알림을 듣음) 사전, 다시 셀 색인 경로로 색인화됩니다. 셀이 보이지 않게되면 무비 플레이어는 리셋되지만 재실행하면 무비 플레이어 상태를 올바른 위치로 재구성 할 수 있습니다. 분명히 작업이 즉시 이루어지지는 않습니다 (동영상 플레이어가 동영상 렌더링을 시작하는 데 시간이 걸립니다)하지만 앱에 메모리 사용량을 추가하지는 않습니다.
관련 문제
- 1. UICollectionViewCell에서 스크롤 문제가 발생했습니다.
- 2. setCurrentItem을 호출 할 때 FragmentStatePagerAdapter가있는 WebView가 공백이됩니다.
- 3. drag'n'drop'ing 할 때 이야기 보드 편집기가 xcode에서 공백이됩니다. IBOutlet/IBAction
- 4. XIB에서로드 할 때 UICollectionViewCell에서 충돌이 발생합니다.
- 5. UICollectionViewCell에서 UIView를 움직이면 스크롤 기능이 차단됩니다.
- 6. MPMoviePlayerController가 스크롤 갤러리에서 첫 번째 비디오를로드하지 않습니다.
- 7. 스크롤 할 때 부드러운 스크롤
- 8. 드릴 다운 할 그래프의 막대를 클릭하면 공백이됩니다.
- 9. jquery에서 아래로 스크롤 할 때 스크롤 할 때 뭔가를 수행하십시오.
- 10. 스트리밍 할 때 MPMoviePlayerController가 자동 실행 - 어떻게 중지합니까?
- 11. 스크롤 할 때 뒤처짐
- 12. 스크롤 할 때 이미지로드
- 13. 아래로 스크롤 할 때
- 14. 스크롤 할 때 div를
- 15. UicollectionViewCell에서 CollectionView의 크기를 업데이트하십시오.
- 16. 클릭 후 UITableCell이 공백이됩니다.
- 17. UICollectionViewCell에서 애니메이트하는 방법은 무엇입니까?
- 18. 페이지가 스크롤 할 때 모달 스크롤
- 19. 맨 위로 스크롤 할 때 아래로 스크롤
- 20. 스크롤 할 때 스크롤 뷰의 내용이 변경됩니다.
- 21. 아래로 스크롤 할 때 DIV를 아래로 스크롤
- 22. 아래로 스크롤 할 때 스크롤 위치입니다. jquery
- 23. div에서 스크롤 할 때 스크롤 페이지
- 24. UICollectionViewCell에서 여러 식별자 사용
- 25. 동일한 UIView로 돌아 가면 공백이됩니다.
- 26. UICollectionViewCell에서 .reuseIdentifier를 설정하십시오.
- 27. PHP가 $ GLOBALS를 설정하면 결과가 공백이됩니다.
- 28. UICollectionViewCell에서 전체 화면으로 전환
- 29. UIMotionEffect는 UICollectionViewCell에서 작동하지 않습니다.
- 30. UICollectionViewCell에서 UIPopoverController 제시
나는 AVPlayer로 전환했으며 현재 예상대로 작동 중입니다. 많은 감사합니다! – Shocks