0

「ムービーを再生」をクリックすると、mpmovieplayer が 0.5 秒間表示され、ムービーがロードされ、コントロールが表示されますが、ビデオを再生せずにメイン画面に戻ります。

これを修正するにはどうすればよいですか?

編集:コードを変更したところ、プレーヤーは起動したままですが、読み込みが停止し、ムービーが再生されません。

問題は、映画を再生する準備ができていないことですか? または、バックグラウンドでムービーを停止してから再開しませんか?

   #import "ViewController.h"


@implementation ViewController
@synthesize moviePlayer;

-(IBAction)grabVid:(id)sender;
{
    [self presentModalViewController:imagePicker animated:YES];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [imagePicker setDelegate:self];

    imagePicker = [[UIImagePickerController alloc] init]; 

    imagePicker.mediaTypes =
    [UIImagePickerController availableMediaTypesForSourceType:
     imagePicker.sourceType];
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:imagePicker animated:YES];


    {
        [imagePicker dismissModalViewControllerAnimated:YES];
    }

}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    //[imagePicker dismissModalViewControllerAnimated:YES];
}

-(IBAction)playMovie:(id)sender  
{  
    NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];
    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    [self.view addSubview:playercontroller.moviePlayer.view];
    [playercontroller.moviePlayer setFullscreen:YES animated:YES];
    playercontroller.moviePlayer.shouldAutoplay = NO;
    [self presentMoviePlayerViewControllerAnimated:playercontroller];
    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    [playercontroller.moviePlayer play];  

    [[NSNotificationCenter defaultCenter] addObserver:self  
                                             selector:@selector(moviePlaybackComplete:)  
                                                 name:MPMoviePlayerPlaybackDidFinishNotification  
                                               object:playercontroller.moviePlayer];  

    }  

- (void)moviePlaybackComplete:(NSNotification *)notification  
{  
    MPMoviePlayerController *moviePlayerController = [notification object];  
    [[NSNotificationCenter defaultCenter] removeObserver:self  
                                                    name:MPMoviePlayerPlaybackDidFinishNotification  
                                                  object:moviePlayerController];  

    [moviePlayerController.view removeFromSuperview];  
    //[playercontroller.moviePlayer release];  
}  

- (void)dealloc {  
    //[super dealloc];  
}  




- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}

@end
4

1 に答える 1

0
-(IBAction) playVideo

{
    NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL];
    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    moviePlayer.initialPlaybackTime = 0;

    [self presentMoviePlayerViewControllerAnimated:playercontroller];
    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    [playercontroller.moviePlayer play];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];


    moviePlayer.controlStyle = MPMovieControlStyleDefault;
    moviePlayer.shouldAutoplay = YES;
    [self.view addSubview:moviePlayer.view];
    [moviePlayer setFullscreen:YES animated:YES];


  // playercontroller = nil;

}
于 2012-06-25T09:58:03.737 に答える