Не могу воспроизвести видео файл - PullRequest
0 голосов
/ 25 ноября 2010

Я, наверное, упускаю что-то действительно очевидное.

Я включил <MediaPlayer/MediaPlayer.h> и имею этот код:

NSURL *videoURL = [NSURL fileURLWithPath:pathToFile];
MPMoviePlayerViewController *mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[self presentMoviePlayerViewControllerAnimated:mediaPlayer];
mediaPlayer.view.backgroundColor = [UIColor blackColor];
[mediaPlayer release];

Но видео не будет воспроизводиться. Я скопировал код из другого места, где видео работает отлично.

pathToFile правильно, потому что переменная используется в предыдущих строках для перемещения видео из папки ресурсов в каталог документов.

Есть идеи, почему это может не сработать?

Спасибо

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Вы можете использовать следующий код, кроме для представления MoviePlayerViewControllerAnimated

NSString *movieFile=[[NSBundle mainBundle] pathForResource:@"movie" ofType:@"m4v"];
moviePlayer= [[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.view.frame = self.view.frame;
[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];

у меня это нормально работает.

2 голосов
/ 25 ноября 2010

Я не думаю, что presentMoviePlayerViewControllerAnimated сохраняет свой приемник, так что, похоже, вы слишком рано выпускаете свой видеоплеер.Вы можете попробовать сделать mediaPlayer сохраненным свойством:

@interface MyClass : SuperClass {
    MVMoviePlayerViewController *mediaPlayer;
}
@property (nonatomic, retain) MVMoviePlayerViewController *mediaPlayer;
@end

@implementation MyClass 
@synthesize mediaPlayer;
// rest of class implementation here...
@end

Затем выполнить инициализацию следующим образом:

self.mediaPlayer = [[[MPMoviePlayerViewController alloc] 
                    initWithContentURL:videoURL] autorelease];

и впоследствии отпустить с помощью:

self.mediaPlayer = nil;

(Чтобы написать кодэто происходит после завершения воспроизведения видео, ознакомьтесь с уведомлением MPMoviePlayerPlaybackDidFinishNotification.

Также имейте в виду, что presentMoviePlayerViewControllerAnimated впервые появился в iOS 3.2, поэтому этот код не будет работать в более ранних версиях iOS.Но я не думаю, что это проблема в этом случае.

...