2010-07-24 23 views
7

Tworzę dodatek do iPada i używam MPMoviePlayerViewController do odtworzenia wideo.Zestaw SDK dla iPada: jak podłączyć się do przycisku MPMoviePlayerViewController?

Wideo zajmuje cały ekran iPada w ten sposób.

playerViewController.view.frame = self.view.frame; 

Potrzebuję sposobu, aby użytkownik mógł nacisnąć przycisk, aby przejść do innego ekranu.

Zauważyłem, że automagicznie gotowy przycisk pojawia się w kontrolerach nawigacyjnych podczas tworzenia MPMoviePlayerViewController.

Moje pytania:.

A) jest tam i tak, aby podłączyć do istniejącego przycisku Gotowe? Zasadniczo po prostu chcę odrzucić kontroler widoku.

b.) Jeśli to nie zadziała. Jak mogę dodać własny przycisk niestandardowy? Jak wspomniałem powyżej, MPMoviePlayerViewController zajmuje cały ekran. Jednym z pomysłów było stworzenie MPMoviePlayerViewController w ramce i pozostawienie nieco pionowej przestrzeni, aby móc dodać własny pasek narzędzi.

Wolałbym sugestie dotyczące sposobu wdrożenia.)?

Jeśli to nie jest możliwe, może kilka sugestii na temat odrzucenia MPMoviePlayerViewController za pomocą naciśnięcia przycisku?

Cała pomoc doceniona.

+0

Proszę sprawdzić moją odpowiedź tutaj: http://stackoverflow.com/a/29516352/1728118 –

Odpowiedz

10

Od docs:

przycisk Gotowe powoduje odtwarzanie filmu, aby wstrzymać podczas przejścia player z trybem pełnoekranowym. Jeśli chcesz wykryć ten scenariusz w swoim kodzie, powinieneś monitorować inne powiadomienia, takie jak MPMoviePlayerDidExitFullscreenNotification.

Tak, spróbuj obserwując to powiadomienie:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayerDidExitFullscreen:) 
              name:MPMoviePlayerDidExitFullscreenNotification 
              object:nil]; 

a później:

- (void)moviePlayerDidExitFullscreen:(NSNotification *)theNotification { 
    // do whatever you need to... 
} 

Edit: myślę misread swoje pytanie. To, czego chcesz, to metoda
Zakładam, że prezentujesz ją przy użyciu -presentMoviePlayerViewControllerAnimated:? Możesz dodać przycisk używając moviePlayer.navigationItem.rightBarButtonItem (lub w lewo, lub cokolwiek innego). Ustaw cel tego przycisku na kontroler widoku i przechwyć to działanie, aby wywołać -dismiss...

+0

Naprawdę wystarczy sposób, aby umożliwić użytkownikowi zamknij ViewController.W rzeczywistości, chcę tylko: [self dismissModalViewControllerAnimated: YES]; Próbowałem zarejestrować dla MPMoviePlayerDidExitFullscreenNotification, która działa dobrze, ale nie ma pożądanego efektu. Pomysły? – butchcowboy

+0

Próbowałem dodać przycisk, a następnie przypisanie do mp.navigationitem.rightBarButtonItem, ale nie pojawił się. Czy ktoś ma przykład tego działa? – butchcowboy

+0

Ktoś znalazł rozwiązanie tego problemu? Wszędzie googlowałem ... W jaki sposób mogę posłuchać, jak widok modalny jest odrzucany przez rozszerzenie kontrolera i przesłonięcie metody dissmiss? – user281300

8

Witam można to zrobić za pomocą co jbandes powiedział

[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMoviePlayer.moviePlayer]; 
+0

, które również zostanie wywołane, gdy film się zakończy, bez naciśnięcia przycisku Gotowe –

+0

@ Max Użytkownik MacLeod presentMoviePlayerViewControllerAnimated następnie MPMoviePlayerDidExitFullscreenNotification will być podniesionym. –

+0

Awesome! Działa to również na 'MPMoviePlayerViewController' po naciśnięciu przycisku done. "MPMoviePlayerWillExitFullscreenNotification" nie uruchamia się tam. –

Powiązane problemy