2013-07-10 20 views
7

Mam ten fragment kodu:iOS odtwarzanie wideo z 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]; 

ale ja naprawdę nie wiem, jak dodać film do mojego projektu. W jakim folderze muszę umieścić plik wideo !? Czy muszę zrobić coś innego, aby dodać go do mojego projektu?

EDIT:

Wygląda to w Xcode, jest to prawidłowe? Ponieważ teraz dostaję błąd odtwarzania. Wcześniej użyłem url grać ten film i to działało całkiem dobrze, ale z tego pliku lokalnie nie :(

enter image description here

Odpowiedz

13

Ok ścieżka wiązka wygląda okradł, poniżej powinno działać.

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

Działa! Wielkie dzięki. Jestem całkiem nowy w rozwoju iOS. Co spowodowało, że moje podejście nie działało zgodnie z oczekiwaniami? – krackmoe

+0

Jeśli chcesz korzystać z interfejsu UIWebView, możesz używać HTML5 do odtwarzania filmów, jeśli czujesz się z nim wygodnie. Załączam kod poniżej. – ApolloSoftware

+0

załączył to jako odpowiedź, jeśli chcesz się z nim bawić. – ApolloSoftware

0

Ponieważ używasz MPMoviePlayerController i nie UIWebView można umieścić swój MP4 lub plik w Zostaną znalezione zasoby i kod XCode/iOS. Upewnij się, że katalog/grupa, w której znajduje się plik, nie ma koloru niebieskiego, nie chcesz, aby była to ścieżka względna:

Po prostu przeciągnij zasoby do projektu. Kopiowanie elementów do miejsca docelowego jest zaznaczone, wybrana jest pierwsza opcja folderów i co najważniejsze, dodać do celu!

Ok wypróbować poniższy kod:

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

Powinno też być uzyskanie ścieżki za pomocą 'NSBundle' – Wain

+0

uzgodnione, Wain .... – ApolloSoftware

+0

Edytowałem mój główny post, proszę spojrzeć na to jeszcze raz – krackmoe

1

Korzystanie HTML5 jak obiecałem powyżej:

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]; 

To będzie grać w 640x480, ale jeśli są zaznajomieni z HTML5 tagów wideo, można dostosować dość ciężko.

+0

Dzięki, dobrze wiedzieć, nawet jeśli teraz tego nie potrzebuję! – krackmoe

+0

Bez wątpienia. Używam HTML5 do odtwarzania przez większość czasu. Coś w tym sprawia, że ​​czujesz się czystszy. Dodatkowo z WebKit pozwala na większą personalizację niż multimedialne struktury iOS. – ApolloSoftware

8

Dodaj MEDIAPLAYER ramowa

importowanie go do pliku

#import <MediaPlayer/MediaPlayer.h> 

utworzyć obiekt MPMoviePlayerController

MPMoviePlayerController * moviePlayer; 

napisać ten kod, w którym chce się odtwarzać wideo

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]; 
Powiązane problemy