문제

나는 수평 레이아웃을 위한 내 UICollectionView.각각의 셀룰라 전체 화면 페이징에 있습니다.각 셀은 또한 포함 MPMoviePlayerController 고할 수 있어요 재생 비디오 문제가 발생하지 않습니다.까지,남녀노소 누구나 좋아합니다 스크롤 왼쪽 또는 오른쪽으로 현재 표시되는 영화(는 일 이 시점에서)사라집-플레이어 넣습니다.면을 트리거하는 재생 비디오 다시 나타납니다.나도 추가 prepareToPlay 에서 스크롤을 위임하는 방법 어떻게든지 비디오 visibile 지만,없는 성공이다.

도움이 되었습니까?

해결책

하나만 사용할 수 있습의 인스턴스 MPMoviePlayerController 다.이것은 제한 MPMoviePlayerController.

귀하의 경우,시작할 때 스크롤하려면,적어도 두 개의 MPMoviePlayerController 초기화되어야한 노력은 비디오를 재생합니다.이것이 가능하지 않으로 MPMoviePlayerController.

는 경우에 재생하려는 하나 이상의 비디오에 한 번 같은 화면에서,당신은 고려할 수 있습니다 사용 AVFoundation 니다.고 있는 오픈 소스 기반의 비디오 플레이어에 AVFoundation.Usine 그 중 하나는 것 보다 쉽게 만들기 AVFoundation 플레이어에서 처음.

다른 팁

컬렉션을 스크롤하면 컬렉션을 벗어난 셀을 컬렉션보기 "재사용 할 수있는 풀"메커니즘에서 다시 사용하므로 기존 무비 플레이어가 제거되고 상태가 재설정됩니다. 셀보기가 다시 표시되면 풀에서 뷰가 수행됩니다 (또는 풀이 비어 있으면 새 하나를 만들어졌습니다). 다시 구성해야합니다. 그러한 상황에서 무엇을 할 수 있습니까?

  • 간단한 솔루션 : 모든 단일 컬렉션 뷰 셀을 고유 한 식별자 (예 : 셀 인덱스 경로 좌표를 사용하여)되므로 재활용되지 않습니다. 이 접근 방식의 뒤를 그립니다. 모든 세포가 처음부터 다시 만들어지면서 메모리 문제가 많을 수 있습니다. 영화 플레이어 컨트롤러는 무시할 수없는 메모리를 취합니다
  • 더 복잡한 솔루션 : 모든 단일 동영상 플레이어 상태 (재생 시간, 비디오 URL, ... 매개 변수를 관찰하거나 알림을 관찰 할 수 있습니다) 셀 인덱스 경로에 의해 다시 색인화 된 ...에 셀이 시야에서 벗어나는 경우 영화 플레이어가 재설정되었지만 다시 순환 할 때 무비 플레이어 상태를 올바른 위치로 재구성 할 수 있습니다. 분명히 조작은 즉각적이지 않습니다 (동영상 플레이어는 비디오 렌더링을 시작하는 데 시간이 걸립니다). 그러나 앱에 추가 메모리 압력을 추가하지는 않습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top