如何访问从相册视频和发挥他们?(How to access videos from Photo Al

2019-10-16 14:00发布

继用来保存照片相册视频代码。

else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
    {

        NSString *sourcePath = [[info objectForKey:@"UIImagePickerControllerMediaURL"]relativePath]; 
        UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil);
    }

如果是视频我要玩它,如果它是像我想要显示它。

帮我。

Answer 1:

与代码检查,如果是图像或视频:

    NSString *mediaType1 = [info objectForKey:UIImagePickerControllerMediaType];
    NSLog(@"mediaType : %@",mediaType1);

    if ([mediaType1 isEqualToString:@"public.image"])
    {
        //Show Image
}
else
{
    //show Video
}

要播放视频检查网址 。

编辑:

        NSString *moviePath = [bundle pathForResource:@"IMG_0017" ofType:@"MOV"];
        NSLog(@"moviePath : %@",moviePath);
     //   NSURL *movieURL = [[NSURL fileURLWithPath:moviePath] retain];

        NSURL *movieURL = [NSURL URLWithString:strValURL];
        NSLog(@"movieURL : %@",movieURL);
        if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 3.2)
        {
            NSLog(@"> 3.2");
            MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
            if (mp)
            {
                [self presentMoviePlayerViewControllerAnimated:mp];
                mp.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
                [mp.moviePlayer play];
                [mp release];
            }
        }
        else if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 3.2)
        {
            NSLog(@"< 3.2");
            theMovie = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
            theMovie.scalingMode = MPMovieScalingModeAspectFill;
            [[NSNotificationCenter defaultCenter]
             addObserver: self
             selector: @selector(myMovieFinishedCallback:)
             name: MPMoviePlayerPlaybackDidFinishNotification
             object: theMovie];
            [theMovie play];
        }

- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
    MPMoviePlayerViewController *moviePlayer = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:moviePlayer];
    [moviePlayer release];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

- (void) movieFinishedCallback:(NSNotification*) aNotification 
{
    MPMoviePlayerController *player = [aNotification object];
    [[NSNotificationCenter defaultCenter]
     removeObserver:self
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:player];
    [player autorelease];
}


Answer 2:

在你的- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info的方法,你可以得到视频的网址和播放:

@property (nonatomic,retain) MPMoviePlayerController *moviePlayerController;

if ([mediaType isEqualToString:@"public.movie"])
{
    NSURL *aURL    = [info objectForKey:UIImagePickerControllerMediaURL];//get the url
    // and init the video player using this url
    _moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:aURL];
    [self.view _moviePlayerController.view];
    _moviePlayerController.useApplicationAudioSession = NO;
    _moviePlayerController.fullscreen = YES;
    [_moviePlayerController play];
}

当然,你必须导入MediaPlayer.framework

编辑:大多数可可项目现在使用arc ,所以上面的代码会要求你保留MPMoviePlayerController自己的实例(如提及这个答案 )。



文章来源: How to access videos from Photo Album and play them?