UIGestureRecognizer su MPMoviePlayerViewController
-
28-09-2019 - |
Domanda
Mi chiedo se qualcuno di voi ha avuto problemi simili e, naturalmente, è successo a trovare un giusto o non così corretto (ma di lavoro) la soluzione / soluzione.
Io sto usando un MPMoviePlayerViewController e sto cercando di un add Riconoscitori Swipe Gesture-sui visualizzare le MPMoviePlayerViewControllers.
moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL: [NSURL URLWithString: currentChannel.StreamURI]];
[MoviePlayerViewController.moviePlayer setControlStyle: MPMovieControlStyleNone];
moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
moviePlayerViewController.moviePlayer.shouldAutoplay = YES;
[MoviePlayerViewController.moviePlayer setScalingMode: MPMovieScalingModeAspectFit];* UISwipeGestureRecognizer swipeGestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget: azione di auto: @selector (previousChannel)];
swipeGestureRight.direction = UISwipeGestureRecognizerDirectionRight;
[MyMoviePlayerViewController.view addGestureRecognizer: swipeGestureRight];
[AddSubview self.view: moviePlayerViewController.view];
In ogni caso, "tipo di lavoro", ma quando sto testando il tutto facendo il gesto in cima alla istanza di lettore di film in esecuzione (entrambi, sia nel simulatore o sul dispositivo) l'applicazione si blocca e gli stati console
** -[CFRunLoopTimer invalidate]: message sent to deallocated instance 0xf074bb0
fa qualcuno di voi ha un'idea su questo argomento?
Soluzione
Sembra che iOS sta liberando l'oggetto MPMoviePlayerViewController
e poi l'invio di un messaggio in un secondo momento. Vorrei suggerire facendo l'istanza un membro della vostra classe e quindi un'istanza di un immobile per esso, ad esempio:
@property (nonatomic, retain) MPMoviePlayerViewController *moviePlayerViewController;
... insieme con la dichiarazione @synthesize
file di implementazione corrispondente di classe. Nell'assegnazione l'oggetto, si dovrebbe quindi fare:
self.moviePlayerController = [[[MPMoviePlayerViewController alloc] initWithContentURL:@"yourUrl"] autorelease];
E, infine, rilasciare l'oggetto impostandolo su nil
nel metodo dealloc
.