Видео не отображается в iPhone Simulator (но я слышу звук из видео) - PullRequest
0 голосов
/ 02 ноября 2010

Я новичок в xcode, построителе интерфейсов и симуляторе iphone.Я пытаюсь воспроизвести фильм / видео в xcode одним нажатием кнопки (что очень просто).Я использую xcode 3.2.4 и симулятор iphone 4.1.

Когда я запускаю симулятор iPhone и нажимаю кнопку, чтобы запустить видео, звук воспроизводится, но видео скрыто.Как будто видео находится за панелью вкладок (это часть приложения панели вкладок).Я не уверен, как заставить воспроизводить видео впереди.

Вот код:

    -(IBAction)launchVideo2:(id)sender{

 NSString *movieFile;
 MPMoviePlayerController *moviePlayer;

 movieFile = [[NSBundle mainBundle] 
     pathForResource:@"IGDIs_Video_Picture_Naming_iPhone" ofType:@"mp4"];
 moviePlayer = [[MPMoviePlayerController alloc] 
       initWithContentURL: [NSURL fileURLWithPath: movieFile]];

 [[NSNotificationCenter defaultCenter] addObserver:self
            selector:@selector(playMediaFinished:)
             name:MPMoviePlayerPlaybackDidFinishNotification
              object:moviePlayer];
 moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
 [moviePlayer play];
}

-(void)playMediaFinished:(NSNotification*)theNotification
{
 MPMoviePlayerController *moviePlayer=[theNotification object];

    [[NSNotificationCenter defaultCenter] removeObserver:self
             name:MPMoviePlayerPlaybackDidFinishNotification
              object:moviePlayer];

    [moviePlayer release];
}

Любые предложения будут великолепны!

Ответы [ 4 ]

2 голосов
/ 02 ноября 2010
0 голосов
/ 08 ноября 2010

Возможно, у вас есть проблема, связанная с памятью:

  • В вашем первом методе вы не выпускаете проигрыватель, который является локальной переменной.
  • При втором способе вы отпускаете игрока, который вам не принадлежит.

Правильное управление памятью (то есть лучшая практика), вы бы сделали это с помощью ивара.

0 голосов
/ 02 ноября 2010

По моему опыту, видео не будет отображаться в симе. Тем не менее, аудио будет. (Что является улучшением, поскольку ранее ни один из них не играл бы.)

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

0 голосов
/ 02 ноября 2010

Не похоже, что вы добавили просмотр фильма в основной вид. Вам нужно будет добавить что-то вроде:

    ...
    [[moviePlayer view] setFrame:[self view] bounds]];
    [[self view] addSubview:[moviePlayer view]]; 
    [moviePlayer play];
}

перед воспроизведением. Я предполагаю, что метод launchVideo2 находится в UIViewController, который владеет основным представлением. Возможно, вам придется изменить [self view] в соответствии с вашим кодом, чтобы он соответствовал виду, в котором вы хотите воспроизвести фильм.

...