Попытка воспроизвести видео с помощью MPMoviePlayerController, только получить аудио - PullRequest
2 голосов
/ 22 мая 2011

Я хочу воспроизвести видео в своем приложении для iPhone. Я использовал этот код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *movieUrl = [NSURL fileURLWithPath:
                       [[NSBundle mainBundle] pathForResource:@"Myvideo" 
                                                       ofType:@"mp4"]];

    //create a new instance of MPMoviePlayerController
    MPMoviePlayerController* myMovie=[[MPMoviePlayerController alloc] 
                                      initWithContentURL:movieUrl];

    //disable scaling of our movie
    myMovie.scalingMode = MPMovieScalingModeNone;

    //don't show any controls
   // myMovie.movieControlMode = MPMovieControlModeHidden;

    //you can specify at which time the movie should 
    //start playing (default is 0.0)
    myMovie.initialPlaybackTime = 2.0;

    //register a callback method which will be called
    //after the movie finished
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(movieFinished:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification 
                                               object:myMovie]; 

    //start the movie (asynchronous method)
    [myMovie play];
    // Do any additional setup after loading the view from its nib.
}

Только звук работает с этим кодом. Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

10 голосов
/ 22 мая 2011

Вам нужно выделить кадр для вашего фильма и добавить его в просмотр. Смотрите здесь .

Таким образом, вы можете добавить:

[myMoview.view setFrame: self.view.bounds];  // player's frame must match parent's
[self.view addSubview:myMovie.view];
5 голосов
/ 22 мая 2011

Технические вопросы и ответы Apple 1240 :

MPMoviePlayerController воспроизводит аудио, но не видео

Q: Я могу успешно воспроизводить фильмы, используя MPMoviePlayerController на iOS 3.1.3. Когда я запускаю этот код на iPad и iPhone с iOS 4, я слышу звук фильма, но видео больше не отображается. Что происходит?

A: Начиная с iPhone iOS 3.2, вызов метода -play: по-прежнему запускает воспроизведение фильма, но не гарантирует его видимость. Чтобы отобразить фильм, вы должны получить новое свойство представления от объекта MPMoviePlayerController и добавить его в иерархию представлений. Вот фрагмент кода:

Листинг 1 Как добавить свойство представления MPMoviePlayerController в иерархию представлений для воспроизведения фильма.

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[[player view] setFrame:[myView bounds]]; // size to fit parent view exactly
[myView addSubview:[player view]];
[player play];

См. Важный совет по портированию для использования Media Player Framework и справку по классу MPMoviePlayerController для получения дополнительной информации.

...