2010-03-04 2 views
0

У меня есть требование, когда мне нужно воспроизвести видеофайл, который доступен в удаленном месте.Как остановить загрузку видео в MPMoviePlayerController

Я передаю URL-адрес экземпляру MPMoviePlayerController и вызвал воспроизведение метода.

Теперь фильм загружается. Я нажал кнопку «Готово» до того, как фильм полностью загрузится и вернется в корневую зону.

Уведомление MPMoviePlayerPlaybackDidFinishNotification вызывается. Я остановил видео и выпустил плеер. Вот код

- (void)movieDidFinish:(NSNotification *)aNotifciation 
{ 

    [self.moviePlayer stop]; 

    [self removeActivityIndicatorView]; 

    [self.tableView reloadData]; 

    [[NSNotificationCenter defaultCenter] removeObserver:self 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:nil]; 

    [moviePlayer release]; 

    moviePlayer = nil; 

} 

Но, по-прежнему видео загружается в фоновом режиме, и iam также может слышать звук.

Этого не должно быть.

Может ли кто-нибудь дать решение?

ответ

1
[movieplayer stop]; 
movieplayer.initialPlaybackTime = -1.0; 
[movieplayer release]; 

Установка начального времени воспроизведения -1 должна решить вашу проблему.

+0

Не работает для меня ... –

0

Вы должны зарегистрироваться для NSNotification, который MPMoviePlayerController отправляет, когда он заканчивается. Вот пример:

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

Хорошее место, чтобы положить, что внутри «viewDidLoad» вашего основного класса ViewController.

Затем в вашем методе «movieFinishedCallback:» (который получает объект NSNotification, переданный в качестве аргумента, который вы можете использовать, чтобы найти более подробную информацию о том, какой тип отделки произошел, если хотите), вы просто увольтете оператор movieplayercontroller

Смежные вопросы