itemFailedToPlayToEnd播放视频时iOS中出错

时间:2014-09-17 07:20:04

标签: ios objective-c iphone ipad

-(void)playVideo
{
    NSURL *vedioURL;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
    NSLog(@"files array %@", filePathsArray);

    NSString *fullpath;

    for ( NSString *apath in filePathsArray )
    {
        fullpath = [documentsDirectory stringByAppendingPathComponent:apath];
        vedioURL =[NSURL fileURLWithPath:fullpath];
    }
    NSLog(@"vurl %@",vedioURL);

    moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL];
    [self.view addSubview:moviePlayer.view];
    [moviePlayer.moviePlayer prepareToPlay];
    [moviePlayer.view setFrame:self.view.bounds];  // player's frame must match parent's
    //moviePlayer.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown;

    moviePlayer.moviePlayer.fullscreen = YES;
    [moviePlayer.moviePlayer play];
     [self.view bringSubviewToFront:btnSkip];
//    [[NSNotificationCenter defaultCenter] addObserver:self
//                                             selector:@selector(movieFinishedCallback:)
//                                                 name:MPMoviePlayerPlaybackDidFinishNotification
//                                               object:moviePlayer];


}

获取以下错误

_itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0; } error in iOS while playing video

1 个答案:

答案 0 :(得分:0)

<。>在.h文件中创建一个新实例

MPMoviePlayerController *播放器

<。>文件中的

- (void) playMovieOffline:(UIView *)view
    {

        // Register to receive a notification when the movie has finished playing.
        NSString *path = [[NSBundle mainBundle]pathForResource:
                          @"videofile_name" ofType:@"mp4"];
        player = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(moviePlayerDidFinish:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:player];

        [player setControlStyle:MPMovieControlStyleNone];
        player.movieSourceType = MPMovieSourceTypeFile;
        [player play];
        [player.view setFrame:CGRectMake(0, 0, 320, 235)];
        [view addSubview:player.view];
    }
    - (void)moviePlayerDidFinish:(NSNotification *)note
    {
        if (note.object == player) {
            NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
            if (reason == MPMovieFinishReasonPlaybackEnded)
            {
                [player play];
            }
        }
    }

试试这个,我希望它有所帮助