-(IBAction)play:(id)sender
{
thumbImageView.alpha=0.0;
NSString *stringvideo=[NSString stringWithFormat:@"http://streaming-service",[[NSUserDefaults standardUserDefaults]valueForKey:@"VideoIdselected"]];
NSString *videoURLString = stringvideo;
NSURL *url = nil;
url = [NSURL URLWithString:videoURLString];
self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
if (self.moviePlayerController)
{
/* Save the movie object. */
[self setMoviePlayerController:self.moviePlayerController];
[self installMovieNotificationObservers];
/* Specify the URL that points to the movie file. */
[self.moviePlayerController setContentURL:url];
[self.moviePlayerController setMovieSourceType:MPMovieSourceTypeStreaming]; // for streaming
self.moviePlayerController.controlStyle = MPMovieControlStyleEmbedded;
// [self.videoPlayer setMovieSourceType:MPMovieSourceTypeStreaming];
// self.moviePlayerController.shouldAutoplay = YES;
[self.moviePlayerController.view setFrame: CGRectMake(0, 0, 320,160)];
[self.moviePlayerController setFullscreen:NO animated:YES];
[self.moviePlayerController view].backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:self.moviePlayerController.view];
[self.view bringSubviewToFront:self.moviePlayerController.view];
[self.moviePlayerController prepareToPlay];
//self.moviePlayerController.useApplicationAudioSession = NO;
[self.moviePlayerController play];
}
}
Bonjour, j'essaie de diffuser une vidéo sur mon application iPhone. Le code lit un fichier local mais se bloque avec l'erreur "Arrêt de l'application en raison d'une exception non interceptée" NSInvalidArgumentException ", raison:" Un AVPlayerItem ne peut pas être associé à plus d'une instance de AVPlayer "lorsqu'il est utilisé pour diffuser une vidéo à partir d'un serveur. De plus, le lien diffuse la vidéo dans un navigateur, mais je ne suis toutefois pas en mesure de lire la vidéo dans l'application. S'il vous plaît aider. Merci
Si vous aviez le même problème, essayez de définir ContentURL après Définition du type de source comme ci-dessous,
moviePlayerController_ = [[MPMoviePlayerViewController alloc] init];
moviePlayerController_.movieSourceType = MPMovieSourceTypeStreaming;
[moviePlayerController_.moviePlayer setContentURL:url];
Cela pourrait être un problème avec MovieSourceType
; vous jouez un fichier local mais utilisez MPMovieSourceTypeStreaming
; il suffit de modifier le type et d'essayer à nouveau
Pas une réponse directe à la question, mais si vous obtenez cette erreur après avoir tenté de mettre à jour contentURL, appelez stop () avant pour résoudre le problème.
moviePlayerController.stop()
moviePlayerController.movieSourceType = .File
moviePlayerController.contentURL = newURL
Vous devez d’abord informer le lecteur du type de source que vous définissez pour le contenu du fichier vidéo; comme ça
Voici deux types d'URL; si l'URL est comme ceci vous écrivez cette fonction
NSString *aStr=@"http://www.my url like this.com/video/videos/review/Michale JACKSON AUDIENCE Comment.mp4";
aStr = [aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
ou (deuxième)
NSString *aStr=@"http://www.normal url.com/video.mp4"
// after add your url string to this url
NSURL *url=[NSURL URLWithString:aStr];
MPMoviePlayerViewController *MPlayer = [[MPMoviePlayerViewController alloc]init];
MPlayer.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
[MPlayer.moviePlayer setContentURL:url];
[self presentMoviePlayerViewControllerAnimated:MPlayer];
j'ai utilisé moviePlayerController.movieSourceType = MPMovieSourceTypeUnknown ses travaux pour moi .. essayez-le ..