1

Je me demande si certains d'entre vous ont rencontré des problèmes similaires et sont bien sûr arrivés à trouver une solution ou une solution de contournement appropriée (ou non). J'utilise un MPMoviePlayerViewController et j'essaye d'ajouter des Reconnaisseurs Swipe-Gesture dans la vue MPMoviePlayerViewControllers.UIGestureRecognizer sur MPMoviePlayerViewController

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: action de soi: @selector (previousChannel)];
swipeGestureRight.direction = UISwipeGestureRecognizerDirectionRight;
[myMoviePlayerViewController.view addGestureRecognizer: swipeGestureRight];
[self.view addSubview: moviePlayerViewController.view];

de toute façon, il « genre d'oeuvres » mais quand je teste la chose en faisant le geste au-dessus de l'instance de lecteur vidéo en cours d'exécution (à la fois, que ce soit dans le simulateur ou sur l'appareil), les accidents d'application et la États de la console

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

L'un de vous avez-vous une idée à ce sujet?

Répondre

1

Il semble que iOS libère votre objet MPMoviePlayerViewController et lui envoie un message plus tard. Je suggère faire l'exemple un membre de votre classe, puis instancier une propriété pour elle, par exemple:

@property (nonatomic, retain) MPMoviePlayerViewController *moviePlayerViewController; 

... ainsi que le fichier de mise en œuvre @synthesize de déclaration de votre classe correspondante. Lors de l'attribution de votre objet, vous devez alors faire:

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

Et enfin, libérer l'objet en mettant à nil dans votre méthode dealloc.

Questions connexes