Playing video in custom size screen - view in iPhone

前端 未结 5 518
死守一世寂寞
死守一世寂寞 2020-12-18 13:24

Suppose user taps on a button and video begins to play. Now when video plays, it always in full screen mode.

Video should be played in a portrait mode (but normally

相关标签:
5条回答
  • 2020-12-18 13:36

    Just an update, the latest iPhone SDK 3.2+ will now allow the programmers to show the video in any desired size and Orientation, New MPMoviePlayerView is provided, which is a property of MPMoviePlayerController, this view will have the video, which you can add as a subview to your view.

    0 讨论(0)
  • 2020-12-18 13:43

    Here's what I did. Add NSNotification to notify you when preloading of the video finishes.

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

    Callback selector:

    -(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];
    
     }
    
    0 讨论(0)
  • 2020-12-18 13:47
    @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]; 
    } 
    

    This Solution will be rejected by Apple, as setOrientation for movie player is the Private API. You need to be careful, but it may work on Jailbroke iPhones.

    0 讨论(0)
  • 2020-12-18 13:47

    Try this out. I found something new.

    @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];
    }
    
    0 讨论(0)
  • 2020-12-18 13:51

    From the documented docs i do not think this is possible using the built in media player

    0 讨论(0)
提交回复
热议问题