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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top