繁体   English   中英

播放保存在相机胶卷中的视频

[英]Playing videos saved in Camera Roll

我的iPhone应用程序可以将照片和视频保存到相机胶卷中,而且我也可以访问相机胶卷中的项目。

显示相机胶卷中的照片很容易,我使用ALAssetsLibrary做到了,它在UIImage中完美显示。 我也可以访问视频,并尝试使用MPMoviePlayerController显示视频。

这是我的代码:

ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];

    // Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos.
    [assetLibrary   enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos 
                    usingBlock:^(ALAssetsGroup *group, BOOL *stop){
                        // Within the group enumeration block, filter to enumerate just videos.
                        [group setAssetsFilter:[ALAssetsFilter allVideos]];

                          // Chooses the video at the last index
                          [group  enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:([group numberOfAssets]-1)] 
                                                   options:0
                                                usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop){   
                                                    if (alAsset){
                                                        ALAssetRepresentation *representation = [alAsset defaultRepresentation];
                                                        MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: [representation url]];
                                                        [moviePlayer.view setFrame:CGRectMake(20, 20, 200, 300)];
                                                        [self.view addSubview: moviePlayer.view];
                                                        [moviePlayer prepareToPlay];
                                                        [moviePlayer play];
                                                    }
                                                }
                           ];
                      }
                    failureBlock: ^(NSError *error){
                        // handle error
                        NSLog(@"No groups");
                    }
     ];

我只看到黑框,没有视频。

谁能帮我?

谢谢。

尝试这个。 我为CollectionViewCell编写此代码,可以根据需要更新moviePlayerController.view.frame。

MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[[asset defaultRepresentation] url]];
        moviePlayerController.view.frame = CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height);//self.view.frame;
        moviePlayerController.movieSourceType= MPMovieSourceTypeFile;
        moviePlayerController.fullscreen = YES;
        [self.view addSubview:moviePlayerController.view];
        [moviePlayerController play];

看看MPMoviePlayerViewController:

MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc] initWithContentURL:[representation url]];
[self presentMoviePlayerViewControllerAnimated:player];
[player.moviePlayer play];
[player release];

文件: http : //developer.apple.com/library/ios/documentation/mediaplayer/reference/mpmovieplayerviewcontroller_class/Reference/Reference.html#//apple_ref/occ/instp/MPMoviePlayerViewController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM