Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在“中播放相册中的电影”;照片;_Iphone_Ios_Ipad - Fatal编程技术网

Iphone 在“中播放相册中的电影”;照片;

Iphone 在“中播放相册中的电影”;照片;,iphone,ios,ipad,Iphone,Ios,Ipad,如何播放“照片”相册中的电影?我不想使用UIImagePickerController来浏览电影,但我希望能够指定电影的名称(或某种id),如下面的代码所示来播放电影。下面的代码在本地播放视频。如何修改路径以播放照片应用程序中存储的名为“视频”的相册中的视频?非常感谢您的帮助 NSString *url = [[NSBundle mainBundle] pathForResource:@"Movie1" of

如何播放“照片”相册中的电影?我不想使用UIImagePickerController来浏览电影,但我希望能够指定电影的名称(或某种id),如下面的代码所示来播放电影。下面的代码在本地播放视频。如何修改路径以播放照片应用程序中存储的名为“视频”的相册中的视频?非常感谢您的帮助

NSString *url = [[NSBundle mainBundle]

                     pathForResource:@"Movie1"

                     ofType:@"MOV"];

MPMoviePlayerViewController *playerViewController =

    [[MPMoviePlayerViewController alloc]

     initWithContentURL:[NSURL fileURLWithPath:url]];

[[NSNotificationCenter defaultCenter]

     addObserver:self

     selector:@selector(movieFinishedCallback:)

     name:MPMoviePlayerPlaybackDidFinishNotification

     object:[playerViewController moviePlayer]];

[playerViewController.view setFrame: self.view.bounds];
[self.view addSubview:playerViewController.view];

MPMoviePlayerController *player = [playerViewController moviePlayer];

[player play];

[playerViewController release];

我最终使用了AlassetLibrary并创建了一个URL数组(AssetURL),用于存储相册中视频的URL。下面是代码,以防对某人有所帮助

NSMutableArray *assets =[[NSMutableArray alloc]init];
NSMutableArray *assetURLs = [[NSMutableArray alloc] init];
NSMutableArray *assetGroups = [[NSMutableArray alloc] init];

ALAssetsLibrary *library = [[ALAssetsLibrary alloc]init];
void (^assetEnumerator)( ALAsset *, NSUInteger , BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop)
{
    if(result != NULL)
    {
        NSLog(@"Asset: %@", result);
        //[assets addObject:result];
        if(![assetURLs containsObject:[result valueForProperty:ALAssetPropertyURLs]]) {
            if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
                [assetURLs addObject:[result valueForProperty:ALAssetPropertyURLs]];
                [assets addObject:result];
            }
        }

    }
};    
void (^assetGroupEnumerator)( ALAssetsGroup *, BOOL *) =  ^(ALAssetsGroup *group, BOOL *stop)
{
    if(group != nil)
    {
        [assetGroups addObject:group];
        NSLog(@"GROUP: %@", group);
        [group enumerateAssetsUsingBlock:assetEnumerator];
    }      
};    
void(^ErrorBlock)(NSError*)=^(NSError *error)
{
    NSLog(@"Failure");
};    


[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
                       usingBlock:assetGroupEnumerator
                     failureBlock: ErrorBlock
 ];  
然后,初始化MPMoviePlayerViewController对象,如下所示:

MPMoviePlayerViewController *playerViewController =[[MPMoviePlayerViewController alloc] initWithContentURL:[[[assets objectAtIndex:counter defaultRepresentation] url]]; // counter is incremented to play all videos or set whatever way to play what you want.