Tovabbra is az a lenyeg, hogy MPMoviePlayerController-rel le tudjak jatszani egymas utan tobb movie-t es a "previous" "next" gombokkal tudjak valtogatni kozottuk valamint a Done gombra alljon le.
Volt tobb rosz megoldasom:
-megneztem, hogy
MPMoviePlayerPlaybackDidFinishNotification-ben meg tudom-e allapitan miert lett vege, de erre a 3.1.2-ben nincs lehetoseg (ugyanugy kuldi a notification-t, ha vege van a movie-nak, vagy ha a megnyomta a user a done, "prev", "next" gombok valamelyiket)
-
Probaltam atlatszo UIButton-okkal letakarni ezeket a gombokat es a sajat gombjaim megnyomasat lekezelni, de ez sem jo, mert a default controlok eltunnek/megjelennek es errol sincsen semmi ertesites.
-Felmerult, hogy csupa sajat UIView-val megcsinalni, ami egyreszt nem lett volna tul szep, masreszt a timeline es a volume control gondot okozott volna.
Vegul ezt a megoldast talaltam (ami egyreszt nem menne at valoszinuleg az app store-on, masreszt a kovetkezo SDK-val valtozhat is. 3.1.2-vel probaltam):
Tovabbra is felteszem az osszes controlt az
MPMoviePlayerController-re (
MPMovieControlModeDefault), majd igy ferek hozzajuk a
UIWindowDidBecomeKeyNotification-ra feliratkozva. (Eloszor a
MPMoviePlayerContentPreloadDidFinishNotification-t akartam hasznalni, de az nem volt jo. Elsore ezt nem is vettem eszre, mert az elso movie betoltesenel eloszor a keyWindow notificaton jott meg es utana a preloadDidFinish, viszont a masodik play-nel mar forditva.):
id internal;
object_getInstanceVariable(player, "_internal", (void *)&internal);
id videoViewController;
object_getInstanceVariable(internal, "_videoViewController", (void*)&videoViewController);
UIView *overlayView = [videoViewController _overlayView]; //MPFullScreenVideoOverlay
Ennek a UIView-nak pedig a
subview-it siman le lehet kerni amik
nagyjabol igy neznek ki. Azert nagyjabol, mert
subviews egy NSArray-t ad vissza amiben az elemek sorrendje nem kotott. Azt figyeltem meg, hogy az
MPFullScreenVideoOverlay-nek ha lekerem a subview-it akkor az mindig ugyanabban a sorrendben jott vissza /
MPFullScreenTransportControls, NPCenteringNavigationBar/ es meg az MPFullScreenTransportControls subview-it lekerve is ugyanaz volt a sorrend /play, next, previous/, de az
NPCenteringNavigationBar-nal az elso video betoltesenel
UINavigationButton, UIView volt a sorrend, de a masodiknal mar pont forditva. Tehat ha subview-kat kerunk le egy NSArray-ba, akkor ne hagyatkozzunk a sorrendre, mert nem mi raktuk ossze!!!
[nextButton removeTarget:fstc action:nil forControlEvents:UIControlEventTouchUpInside];
[nextButton addTarget:self action:@selector(nextButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
Aztan persze meg kell irni a sajat nextButtonClicked methodunkat is (meg a tobbi gombet is) amiben ha van meg lejatszando movie-nk akkor release-eljuk az MPMoviePlayerController-t majd csinalunk egy ujat a kovetkezo movie-val.>