2
votes

I am having problem with MPMovieplayerController .

mp =  [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

now when I try to write mp. the list does not contain the "setControlStyle" ! is there any thing wrong ?

and if I write directly [mp setControlStyle:MPMovieControlStyleFullscreen]; than video starts in full screen but done button is not displayed but ya if I click on the place where done button should be than it works fine !!!!

EDITED :

  - (id)initWithPath:(NSString *)moviePath
   {
// Initialize and create movie URL
    if (self = [super init])
   {
        movieURL = [NSURL URLWithString:moviePath];    
    [movieURL retain];
   }
return self;
 }

- (void) readyPlayer
{
mp =  [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

[mp setControlStyle:MPMovieControlStyleFullscreen];
 [mp setFullscreen:YES];

if ([mp respondsToSelector:@selector(loadState)]) 
{
    // Register that the load state changed (movie is ready)
[[NSNotificationCenter defaultCenter] addObserver:self 
                   selector:@selector(moviePlayerLoadStateChanged:) 
                   name:MPMoviePlayerLoadStateDidChangeNotification 
                   object:nil];
  }

  else

  {
  [NSNotificationCenter defaultCenter] addObserver:self 
                     selector:@selector(moviePreloadDidFinish:) 
                     name:MPMoviePlayerContentPreloadDidFinishNotification 
                     object:nil];
  }

  // Register to receive a notification when the movie has finished playing. 
 [[NSNotificationCenter defaultCenter] addObserver:self 
                    selector:@selector(moviePlayBackDidFinish:) 
                    name:MPMoviePlayerPlaybackDidFinishNotification 
                    object:nil];
 }

  - (void) loadView
  {
  [self setView:[[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]  autorelease]];
[[self view] setBackgroundColor:[UIColor blackColor]];
  }

  - (void) moviePlayerLoadStateChanged:(NSNotification*)notification 
  {
//[self makeButton];
// Unless state is unknown, start playback
if ([mp loadState] != MPMovieLoadStateUnknown)
  {

    [[NSNotificationCenter  defaultCenter] removeObserver:self
                                       name:MPMoviePlayerLoadStateDidChangeNotification 
                                       object:nil];


   [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];

    // Rotate the view for landscape playback
 [[self view] setBounds:CGRectMake(0, 0, 480, 320)];
 [[self view] setCenter:CGPointMake(160, 240)];
 [[self view] setTransform:CGAffineTransformMakeRotation(M_PI / 2)]; 

    // Set frame of movieplayer
    [[mp view] setFrame:CGRectMake(0, 0, 480, 320)];


// Add movie player as subview
  [[self view] addSubview:[mp view]];   

    // Play the movie
    [mp play];
}
 }

need guidance.

1
For your second question, are you testing on device or on simulator? How are you displaying the MPMoviePlayerController - maybe you could show us some code.Till

1 Answers

1
votes

As the property in question is called controlStyle, you could use mp.controlStyle=..; or [mp setControlStyle:..];

For the second question / issue, see mpmovieplayercontroller-audio-show-done-button for a quick workaround solution.