2013-07-10 3 views
7

я получил этот кусок кода:IOS игры видео с MPMoviePlayerController

theMoviPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:@"/Resources/disc.mp4"]]; 
    theMoviPlayer.controlStyle = MPMovieControlStyleFullscreen; 
    theMoviPlayer.view.transform = CGAffineTransformConcat(theMoviPlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
    UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
    [theMoviPlayer.view setFrame:backgroundWindow.frame]; 
    [backgroundWindow addSubview:theMoviPlayer.view]; 
    [theMoviPlayer play]; 

Но я действительно не знаю, как добавить видео в мой проект. В какой папке я должен поставить видеофайл !? Или мне нужно сделать что-то еще, чтобы добавить его в мой проект?

EDIT:

Похоже, что это в Xcode, это правильно? Потому что сейчас я получаю ошибку воспроизведения. Раньше я использовал URL, чтобы воспроизвести это видео, и это работало довольно хорошо, но с этим файлом локально не :(

enter image description here

ответ

13

Ok вашего путь расслоение выглядит измученным, ниже должен работать.

NSBundle *bundle = [NSBundle mainBundle]; 
NSString *moviePath = [bundle pathForResource:@"disc" ofType:@"mp4"]; 
NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain]; 

theMoviPlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 
theMoviPlayer.controlStyle = MPMovieControlStyleFullscreen; 
theMoviPlayer.view.transform = CGAffineTransformConcat(theMoviPlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
[theMoviPlayer.view setFrame:backgroundWindow.frame]; 
[backgroundWindow addSubview:theMoviPlayer.view]; 
[theMoviPlayer play]; 
+0

Works! Большое спасибо. Я совершенно новичок в развитии iOS. Какая причина, почему мой подход не работал должным образом? – krackmoe

+0

Если вы хотите использовать UIWebView, вы можете использовать HTML5 для воспроизведения видео, если вам удобнее. Приложите код ниже. – ApolloSoftware

+0

приложил его к ответу, если вы хотите поиграть с ним. – ApolloSoftware

0

Поскольку вы используете MPMoviePlayerController и не UIWebView вы можете разместить свой mp4 файл или в вашем Ресурсы и XCode/iOS найдут его. Убедитесь, что каталог/группа, в которой находится файл, не является желтым, а не синим. Вы не хотите, чтобы это был относительный путь.

Просто перетащите ресурс в свой проект. Выбрана копия элементов в пункт назначения, выбран первый вариант папок и, самое главное, добавить в цель!

Ok попробовать код ниже:

NSBundle *bundle = [NSBundle mainBundle]; 
NSString *moviePath = [bundle pathForResource:@"disc" ofType:@"mp4"]; 
NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain]; 

theMoviPlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 
theMoviPlayer.controlStyle = MPMovieControlStyleFullscreen; 
theMoviPlayer.view.transform = CGAffineTransformConcat(theMoviPlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
[theMoviPlayer.view setFrame:backgroundWindow.frame]; 
[backgroundWindow addSubview:theMoviPlayer.view]; 
[theMoviPlayer play]; 
+1

Следует также получить путь, используя 'NSBundle' – Wain

+0

согласился, Wain .... – ApolloSoftware

+0

Я отредактировал свой главный пост, пожалуйста, взгляните на него снова – krackmoe

1

Использование HTML5, как я обещал выше:

NSString *videoTitle = @"disc.mp4"; 
    NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
    NSString *playPath = [NSString stringWithFormat:@"<center><video width=\"640\" height=\"480\" controls><source src=\"%@\" media=\"all and (max-width:1024px)\"></video></center>",videoTitle]; 


    [webView loadHTMLString:playPath baseURL:baseURL]; 

Это будет играть в разрешении 640x480, но если вы знакомы с видео-тегов HTML5, вы можете настроить довольно сильно.

+0

Спасибо, хорошо знать, даже если мне это не нужно прямо сейчас! – krackmoe

+0

Без сомнения. Я использую HTML5 для воспроизведения большую часть времени. Что-то в этом заставляет чувствовать себя чище. Кроме того, с помощью WebKit он позволяет настраивать больше, чем мультимедийные среды iOS. – ApolloSoftware

8

Добавить MediaPlayer Framework

импортировать его в файл

#import <MediaPlayer/MediaPlayer.h> 

Создать объект MPMoviePlayerController

MPMoviePlayerController * moviePlayer; 

писать этот код, где хочет играть в видео

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"spacetest.mp4" ofType:nil]; 
NSURL *fileURL = [NSURL fileURLWithPath:filepath]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[self.view addSubview:moviePlayer.view]; 
moviePlayer.fullscreen = YES; 
[moviePlayer play]; 
Смежные вопросы