Question

Nous avons donc des boutons liés à afficher des images / vidéos / audio, cliquez en fonction d'un chèque que nous faisons plus tôt. Cette partie fonctionne très bien. Il sait que l'on à jouer, cependant, lorsque l'on clique sur les boutons pour la vidéo et l'audio, rien ne se passe. L'image que l'on fonctionne très bien.

La vidéo et l'audio sont prises pour une URL en ligne, ils ne sont pas locaux, mais partout dit cela é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];

    }

Voir quelque chose de mal? Par la façon dont il compile et fonctionne, mais rien ne se passe lorsque nous avons touché le bouton qui exécute ce code.

Était-ce utile?

La solution

Je ne sais pas pourquoi ils ne jouent pas, ne jamais atteindre les conditons 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 devrez 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;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top