0

Nous avons donc des boutons liés pour afficher des images/vidéos/audio sur clic en fonction d'une vérification que nous faisons plus tôt. Cette partie fonctionne bien. Il sait lequel jouer, cependant, quand on clique sur les boutons pour la vidéo et l'audio, rien ne se passe. L'image fonctionne bien.Lecture de vidéo et audio dans iPhone ne fonctionne pas

La vidéo et l'audio sont pris pour une URL en ligne, ils ne sont pas locaux, mais partout dit que c'était encore possible. Voici un petit extrait du code où nous jouons les deux fichiers:

if ([fName hasSuffix:@".png"]) 
    { 
     NSLog(@"PICTURE"); 
     NSURL *url = [NSURL URLWithString: 
         fName]; 

     UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; 
     self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
     // self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"MainBG.jpg"]]; 
     [self.view addSubview:[[UIImageView alloc] initWithImage:image]]; 

    } 
    if ([fName hasSuffix:@".mp4"]) 
    { 
     NSLog(@"VIDEO"); 
     //NSString *path = [[NSBundle mainBundle] pathForResource:fName ofType:@"mp4"]; 
     //NSLog(path); 
     NSURL *url = [NSURL fileURLWithPath:fName]; 

     MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
     [player play]; 

    } 
    if ([fName hasSuffix:@".mp3"]) 
    { 
     NSLog(@"AUDIO"); 
     NSURL *url = [NSURL fileURLWithPath:fName]; 

     NSData *soundData = [NSData dataWithContentsOfURL:url]; 
     AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithData:soundData error: nil]; 
     [avPlayer play]; 

    } 

Vous avez vu quelque chose de mauvais? Par la façon dont il compile et s'exécute, mais rien ne se passe lorsque nous appuyons sur le bouton qui exécute ce code.

Répondre

0

Je ne suis pas sûr de savoir pourquoi ils ne jouent pas, est-ce qu'il atteint jamais les conditions vidéo et audio?

De toute façon votre manque actuellement avant de jouer le film

[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(movieFinishedCallback:) 
     name:MPMoviePlayerPlaybackDidFinishNotification object:player]; 

Vous aurez besoin alors la fonction pour gérer le rappel

-(void)movieFinishedCallback:(NSNotification *)notification{ 
    NSLog(@"MOVIE FINISHED"); 
    if(player == [notification object]){ 
     [[NSNotificationCenter defaultCenter] removeObserver:self 
       name:MPMoviePlayerPlaybackDidFinishNotification object:player]; 
     [player release]; 
     player = nil; 
    } 
} 
Questions connexes