Воспроизведение видео на экране нестандартного размера - просмотр на iPhone

Предположим, пользователь нажимает кнопку, и начинается воспроизведение видео. Теперь при воспроизведении видео всегда в полноэкранном режиме.

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


person Sagar R. Kothari    schedule 14.09.2009    source источник
comment
Это дубликат этого вопроса: stackoverflow.com/questions/1347395/   -  person Brad Larson    schedule 15.09.2009
comment
В ПОРЯДКЕ. ЗДЕСЬ МОЕ требование - просто воспроизводить видео в портретном режиме. Ознакомьтесь с моим новым отредактированным вопросом.   -  person Sagar R. Kothari    schedule 15.09.2009
comment
Вопрос может повторяться. Но ответ не повторяется.   -  person Sagar R. Kothari    schedule 23.10.2009


Ответы (5)


@interface MPMoviePlayerController (extend) 
 -(void)setOrientation:(int)orientation animated:(BOOL)value; 
@end 

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR]; 
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO]; 
if (moviePlayer) 
{ 
    [self.moviePlayer play]; 
} 

Это Решение будет отклонено Apple, поскольку setOrientation для проигрывателя фильмов является частным API. Будьте осторожны, но это может работать на iPhone с Jailbroke.

person RVN    schedule 13.03.2010

Просто обновление, последний iPhone SDK 3.2+ теперь позволяет программистам показывать видео любого желаемого размера и ориентации, предоставляется новый MPMoviePlayerView, который является свойством MPMoviePlayerController, в этом представлении будет видео, которое вы можете добавить как подпредставление к вашему представлению.

person RVN    schedule 10.04.2010

Из документированных документов я не думаю, что это возможно с использованием встроенного медиаплеера.

person Daniel    schedule 14.09.2009
comment
Можем ли мы создать пользовательский медиаплеер? - person Sagar R. Kothari; 14.09.2009
comment
В ПОРЯДКЕ. ЗДЕСЬ МОЕ требование - просто воспроизводить видео в портретном режиме. Ознакомьтесь с моим новым отредактированным вопросом. - person Sagar R. Kothari; 15.09.2009
comment
Попробуйте новый MPMoviePlayerController, доступный в iPhone SDK 3.2+, который позволяет настраивать, устанавливать требуемый размер, а также изменять ориентацию. - person RVN; 13.04.2010

Попробуйте это. Я нашел кое-что новое.

@interface MPMoviePlayerController (extend)
-(void)setOrientation:(int)orientation animated:(BOOL)value;
@end

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR];
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO];
if (moviePlayer)
{
    [self.moviePlayer play];
}
person Sagar R. Kothari    schedule 14.09.2009

Вот что я сделал. Добавьте NSNotification, чтобы уведомить вас о завершении предварительной загрузки видео.

- (void)playVideoUrl:(NSString *)videoUrl {
    NSURL *url = [NSURL URLWithString:videoUrl];
    MPMoviePlayerController* theMovie=[[MPMoviePlayerController alloc]   
             initWithContentURL:url]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 

    //MPMoviePlayerContentPreloadDidFinishNotification
    [[NSNotificationCenter defaultCenter] addObserver:self                           
                       selector:@selector(myMovieFinishedPreloading:)                                            
                           name:MPMoviePlayerContentPreloadDidFinishNotification                                                
                         object:theMovie]; 


    // Movie playback is asynchronous, so this method returns immediately. 
    [theMovie play]; 
     }

Селектор обратного вызова:

-(void)myMovieFinishedPreloading:(NSNotification*)aNotification  {
    NSArray *windows = [[UIApplication sharedApplication] windows];

    UIWindow *moviePlayerWindow = nil;
    if ([windows count] > 1) 
    {
        moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
    }

    CGAffineTransform transform = CGAffineTransformMakeScale(0.5, 0.5);
    transform = CGAffineTransformRotate(transform, -90.0f*M_PI/180.0f);
    [moviePlayerWindow setTransform:transform];

 }
person chalcopyrite    schedule 22.06.2010