Ios6 MPMoviePlayerController从照片库加载视频,播放速度如此之快

Ios6 MPMoviePlayerController从照片库加载视频,播放速度如此之快,ios6,mpmovieplayercontroller,Ios6,Mpmovieplayercontroller,//CameraViewController.h @接口摄像机控制器:UIViewController{ UIImagePickerController *_picker; } @属性(强,非原子)IBUIImageView*imageView @财产(非原子,保留)MPMoviePlayerController*播放器 (iAction)loadImage:(UIButton*)发送器 //CameraViewController.m @接口CameraViewController()

//CameraViewController.h

@接口摄像机控制器:UIViewController{

UIImagePickerController *_picker;
}

@属性(强,非原子)IBUIImageView*imageView

@财产(非原子,保留)MPMoviePlayerController*播放器

  • (iAction)loadImage:(UIButton*)发送器
//CameraViewController.m

@接口CameraViewController()

@属性(强、非原子)MPMoviePlayerController*playView

@结束

@CameraViewController的实现

@综合imageView=\u imageView

@综合玩家=_玩家

@综合播放视图=_播放视图

  • (无效)viewDidLoad
{

}

  • (无效)未收到记忆警告
{

}

  • (iAction)加载图像:(UIButton*)发送器{

    _picker.delegate=self

    _picker.sourceType=UIImagePickerController源类型PhotoLibrary

    NSArray*mediaTypes=[NSArray arrayWithObjects:(NSString*)kUTTypeImage,(NSString*)kUTTypeMovie,无]

    _picker.mediaTypes=mediaTypes

    [self-presentViewController:picker已设置动画:是完成:空]

}

pragma标记-图像选择器委托
  • (void)imagePickerController:(UIImagePickerController*)picker未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息{

    UIImage*image=nil

    NSURL*imageURL=nil

    imageURL=[info-valueForKey:UIImagePickerController-DiaUrl]

    if(imageURL==nil){

    }

    否则{

    self.player=[[MPMoviePlayerController alloc]initWithContentURL:imageURL]

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.player];
    
        self.player.view.frame = CGRectMake(10.0, 10.0, 200.0, 200.0);
    
        self.player.view.backgroundColor = [UIColor clearColor];
    
        self.player.movieSourceType = MPMovieSourceTypeFile;
    
        [self.player prepareToPlay];
    
        [self.view addSubview:self.player.view];
    
        [self.player play];
    
    }

    [picker DismissViewControllerInitiated:是完成:NULL]

}

  • (无效)ImagePickerController IDCancel:(UIImagePickerController*)选择器{

    [picker DismissViewControllerInitiated:是完成:NULL]

}

pragma标记-用户定义
  • (作废)电影完成回扣:(NSNotification*)通知{

    mpmovieplayervewcontroller*player=[通知对象]

    [[NSNotificationCenter defaultCenter]移除观察者:self 名称:MPMoviePlayerPlaybackDidFinishNotification对象:播放器]

    [player.view从SuperView移除]

}

movieFinishedCallback:方法将立即调用,因此视频无法完全播放

如何解决这个问题?

苹果建议:


使用AVPlayer播放iPod库中的视频、摄像头滚动或通过iTunes文件共享。

好的,您能帮我吗?
[super didReceiveMemoryWarning];
image = [info valueForKey:UIImagePickerControllerEditedImage];

if (image == nil) {

    image = [info valueForKey:UIImagePickerControllerOriginalImage];

    _imageView.image = image;

}

else {

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

    self.player.view.frame = CGRectMake(10.0, 10.0, 200.0, 200.0);

    self.player.view.backgroundColor = [UIColor clearColor];

    self.player.movieSourceType = MPMovieSourceTypeFile;

    [self.player prepareToPlay];

    [self.view addSubview:self.player.view];

    [self.player play];