Frage

Ich frage mich, ob jemand von euch begegnet sind ähnliche Probleme und natürlich geschah eine richtige oder nicht so richtige zu finden (aber funktionierende) Lösung / Abhilfe.

Ich bin mit einem MPMoviePlayerViewController und ich versuche zu einer Add Swipe-Geste Recognizers auf die MPMoviePlayerViewControllers anzuzeigen.

  

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: Selbst Aktion: @selector (previousChannel)];
  swipeGestureRight.direction = UISwipeGestureRecognizerDirectionRight;
  [MyMoviePlayerViewController.view addGestureRecognizer: swipeGestureRight];
  [Self.view addSubview: moviePlayerViewController.view];

Wie auch immer, es „Art von Arbeiten“, aber wenn ich die Prüfung die Sache durch die Geste zu tun auf der laufenden Video-Player-Instanz (beide entweder im Simulator oder auf dem Gerät) die App abstürzt und die Konsolen-Staaten

** -[CFRunLoopTimer invalidate]: message sent to deallocated instance 0xf074bb0

hat jemand von euch eine Idee zu diesem Thema?

War es hilfreich?

Lösung

Es scheint, dass iOS Ihr MPMoviePlayerViewController Objekt zu befreien und dann später eine Nachricht an sie zu senden. Ich würde die Instanz ein Mitglied Ihrer Klasse vorschlagen zu machen und dann eine Eigenschaft für sie instanziiert wird, zB:

@property (nonatomic, retain) MPMoviePlayerViewController *moviePlayerViewController;

... zusammen mit der entsprechenden @synthesize Deklaration Ihrer Klasse Implementierungsdatei. Wenn Ihr Objekt Zuweisung, sollten Sie dann tun:

  self.moviePlayerController = [[[MPMoviePlayerViewController alloc] initWithContentURL:@"yourUrl"] autorelease];

Und schließlich, lassen Sie das Objekt, indem es zu nil in Ihrer dealloc Methode setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top