2013-07-28 3 views
1

MPMoviePlayerViewController에서 파생 된 자체 MoviePlayerViewController를 만들었으므로 표준 presentMoviePlayerViewController 메서드를 사용하여 표시합니다. 모두 정상적으로 작동합니다. 무비 플레이어 컨트롤러 위에는 사용자가 버튼을 클릭 할 때 (동영상을 일시 중지 한 후) 다른 ShareThisMovie보기 컨트롤러가 표시됩니다. presentViewController를 사용하여이 작업을 수행합니다.다른보기 컨트롤러를 표시 할 때 MPMoviePlayerPlaybackDidFinishNotification이 발생합니다.

이유는 모르겠지만 새로운 VC가 나타나 자마자 기본 MoviePlayerViewController가 MPMoviePlayerPlaybackDidFinishNotification을 즉시 실행합니다.이 VCM 계층은 전체 VC 계층 구조를 닫음으로써 응답하므로 사용자는 해당 VC와 상호 작용할 기회가 없습니다. ShareThisMovie 컨트롤러.

알림을 무시하더라도 여전히 영화 플레이어가 실행한다는 사실은 ShareThisMovie 컨트롤러가 닫히면 영화가 시작될 때부터 시작된다는 것을 의미합니다. 이것은 분명히 내가 원하는 것이 아닙니다 ...

MoviePlayerController가이 이벤트를 실행하는 이유는 무엇입니까? 문제를 해결하지 못하도록하거나 어떻게 해결할 수 있습니까? 나는 ShareThisVideo 컨트롤러를 표시하고 나중에 다시 설정하기 전에 마지막 재생 위치를 저장했는데, 그것은 여전히 ​​

TNX

답변

0

이것은 다른보기로 MoviePlayerViewController 이동할 때 때문에 무슨 일이 일어나고 ... 처음부터 재생 컨트롤러 MPMoviePlayer가 재생을 중지하면 MPMoviePlayerPlaybackDidFinishNotification 대리인이 호출합니다.

다른 ViewController를 사용 중일 때 MPMoviePlayer를 계속 재생할 수 없습니다.

하나의 솔루션이 ShareThisMovieviewcontroller를 제시하기 때문에 단순히 동일한 컨트롤러의 MPMoviePlayer 위에 공유하기 위해 UIView를 추가 할 수 있습니다. 이렇게하면 MPMoviePlayer가 중지되지 않습니다.

+0

불행히도, 플레이어를 통해 프리젠 테이션을하는 것은 수정하거나 조정할 수없는 표준 iOS 컨트롤러이므로 UIView를 간단히 추출하여 표시 할 수는 없습니다 ... –

0

해결 방법보다는 정확히 대답이 아니지만 MPMoviePlayerViewController에서 파생되는 대신 표준 UIViewController에서 파생되었으며 그 안에 MPMoviePlayerController가 포함되어 있습니다. 어떤 이유로 플레이어가 내 플레이어 뷰 컨트롤러 위에 다른 VC를 제시했을 때 플레이어가 didFinish 이벤트를 발생시키지 않았습니다 ...

내 결론은 MPMoviePlayerViewController에서 VC를 파생시키지 않는 것입니다. ..

관련 문제