Воспроизведение видео и аудио на iPhone не работает - PullRequest
0 голосов
/ 18 марта 2010

Таким образом, у нас есть кнопки, связанные для отображения изображений / видео / аудио при нажатии в зависимости от проверки, которую мы делаем ранее. Эта часть отлично работает. Он знает, какую из них воспроизводить, однако, когда мы нажимаем кнопки для видео и аудио, ничего не происходит. Изображение одно работает отлично.

Видео и аудио принимаются за URL в Интернете, они не локальные, но везде говорят, что это все еще возможно. Вот небольшой фрагмент кода, в котором мы воспроизводим два файла:

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];

    }

Видишь что-то не так? Кстати, он компилируется и запускается, но ничего не происходит, когда мы нажимаем кнопку, которая выполняет этот код.

1 Ответ

0 голосов
/ 14 июля 2010

Я не уверен, почему они не воспроизводятся, достигает ли это когда-либо видео и аудио условий?

В любом случае, в данный момент вы пропали без вести до воспроизведения фильма

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

Затем вам понадобится функция для обработки обратного вызова.

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