РЕДАКТИРОВАТЬ: MPMoviePlayerController
устарела сейчас.Поэтому я использовал AVPlayerViewController
.и написал следующий код:
NSURL *videoURL = [NSURL fileURLWithPath:filePath];
//filePath may be from the Bundle or from the Saved file Directory, it is just the path for the video
AVPlayer *player = [AVPlayer playerWithURL:videoURL];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
//[playerViewController.player play];//Used to Play On start
[self presentViewController:playerViewController animated:YES completion:nil];
Пожалуйста, не забудьте импортировать следующие рамки:
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>
Вы можете использовать MPMoviePlayerController
для воспроизведения локального файла.
1. Добавьте Mediaplayer
framework и выполните #import <MediaPlayer/MediaPlayer.h>
в вашем viewController.
2. Перетащите ваш видеофайл, который вы создали на рабочем столе, в xcode.
3. Получить путь к локальному видео.
NSString*thePath=[[NSBundle mainBundle] pathForResource:@"yourVideo" ofType:@"MOV"];
NSURL*theurl=[NSURL fileURLWithPath:thePath];
4. Инициализировать moviePlayer с вашим путем.
self.moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:theurl];
[self.moviePlayer.view setFrame:CGRectMake(40, 197, 240, 160)];
[self.moviePlayer prepareToPlay];
[self.moviePlayer setShouldAutoplay:NO]; // And other options you can look through the documentation.
[self.view addSubview:self.moviePlayer.view];
5. Для управления тем, что должно быть сделано после воспроизведения:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
//playBackFinished will be your own method.
EDIT 2 : для обработки завершения для AVPlayerViewController
вместоMPMoviePlayerController
, используйте следующее ...
AVPlayerItem *playerItem = player.currentItem;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playBackFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];
В этом примере я отклоняю AVPlayerViewController
после завершения:
-(void)playBackFinished:(NSNotification *) notification {
// Will be called when AVPlayer finishes playing playerItem
[playerViewController dismissViewControllerAnimated:false completion:nil];
}