Как я могу воспроизводить видео в формате .mp4 или .mov с URL-адреса Интернета или локального файла в iOS?
Как воспроизводить видео с локального или URL-адреса сервера в iOS
Ответ 1
1. Прежде всего добавьте MediaPlayer.Framework в XCode
2. Затем добавьте #import < MediaPlayer/MediaPlayer.h > в вашем файле viewController.h
3. Теперь реализуйте этот код в вашем методе viewDidLoad
//NSString *filepath = [[NSBundle mainBundle] pathForResource:@"aaa" ofType:@"mp4"];
//NSURL *fileURL = [NSURL fileURLWithPath:filepath];
NSURL *fileURL = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
[moviePlayerController play];
Ориентация Пожалуйста, добавьте этот код
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)];
} else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
[moviePlayerController.view setFrame:CGRectMake(0, 0, 480, 320)];
}
return YES;
}
В этом коде moviePlayerController - MPMoviePlayerController, объявленный в .h файле
Ответ 2
Это старый вопрос, но все еще актуальный, и iOS 9 устарел MPMoviePlayerController. Новое, что нужно использовать, если AVMoviePlayer, пример кода:
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"vid" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
self.avPlayer = [AVPlayer playerWithURL:fileURL];
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
layer.frame = self.view.bounds;
[self.view.layer addSublayer: layer];
[self.avPlayer play];
Ответ 3
Пожалуйста, попробуйте, чтобы он отлично работал у меня,
var moviePlayer:MPMoviePlayerController!
override func viewDidLoad()
{
super.viewDidLoad()
let url:NSURL = NSURL(string: "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!
moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer.view.frame = CGRect(x: 20, y: 20, width: UIScreen.mainScreen().bounds.size.width-40, height: UIScreen.mainScreen().bounds.size.height/2)
self.view.addSubview(moviePlayer.view)
moviePlayer.fullscreen = true
moviePlayer.controlStyle = MPMovieControlStyle.Embedded
}
И включите в файл Plist параметры Настройки безопасности приложения → Разрешить произвольные нагрузки → ДА.