iOS播放视频exc_bad_access

时间:2013-07-09 16:57:25

标签: ios objective-c cocoa-touch

请你帮我解决这个问题,我正在尝试播放视频,但我遇到错误Exc_bad_Access code = 1且有时代码= 2:

-(IBAction)BtnPressed:(id)sender{

    self.videoview.hidden = false;
    NSString *btnTag = [NSString stringWithFormat:@"%d",[sender tag]];
    NSString *videofilename = [NSString stringWithFormat:@"%@%@_%@", selectedGender, btnTag, selectedVowel];
    //Playing video
    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:videofilename ofType:@"mp4"];
    NSLog(@"file name is %@",filepath);
    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
    //NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:btnTag ofType:@"mp4"]];
    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                          name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:playercontroller];

    //[self presentMoviePlayerViewControllerAnimated:playercontroller];
    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    //playercontroller.moviePlayer.scalingMode = MPMovieScalingModeNone;
    playercontroller.moviePlayer.controlStyle = MPMovieControlStyleNone;
    [playercontroller.view setFrame:CGRectMake(30, 50, 150, 200)];
    [self.videoview addSubview:playercontroller.view];
    [playercontroller.moviePlayer prepareToPlay];
    [playercontroller.moviePlayer play];
    //playercontroller = nil;

}

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

    if ([player respondsToSelector:@selector(setFullscreen:animated:)])
    {
        [player.view removeFromSuperview];
    }    
}

等待你的建议

1 个答案:

答案 0 :(得分:0)

看起来您的MPMoviePlayerViewController未被保留,因此可能会被删除。