【问题标题】:Store the video from Documents directory to Photos album将视频从 Documents 目录存储到相册
【发布时间】:2014-12-15 20:38:12
【问题描述】:

我已将视频临时存储在 Documents 目录中。

这是示例视频路径:file:///var/mobile/Containers/Data/Application/C651A13F-8F7C-4FCB-A1D9-D6D4C5F512E7/Documents/mergeVideo.mov

我想将此视频保存在专辑目录中。为此我必须将此文件 url 转换为资产 url。

我已经尝试了解决方法..但无济于事..有人可以指导..吗?

要使这段代码工作,我必须将文件 url 转换为资产 url .. 怎么做?

我已经有了使用资产 url 保存视频的代码。这是我的代码:

-(void)save2cameraRoll{


NSString *albumName=@"album name";
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library addAssetsGroupAlbumWithName:albumName
                         resultBlock:^(ALAssetsGroup *group) {
                             NSLog(@"added album:%@", albumName);
                         }
                        failureBlock:^(NSError *error) {
                            NSLog(@"error adding album");

                        }];

__block ALAssetsGroup* groupToAddTo;
[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
                       usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                           if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:albumName]) {
                               NSLog(@"found album %@", albumName);
                               groupToAddTo = group;
                           }
                       }
                     failureBlock:^(NSError* error) {
                         NSLog(@"failed to enumerate albums:\nError: %@", [error localizedDescription]);
                     }];

NSURL *fileURL = videoInputUrl;


[library assetForURL:fileURL
         resultBlock:^(ALAsset *asset) {
             // assign the photo to the album
             [groupToAddTo addAsset:asset];
             NSLog(@"Added %@ to %@", [[asset defaultRepresentation] filename], albumName);
             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Video Saved to HubRamped Album."  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil, nil];
             [alert show];
         }
        failureBlock:^(NSError* error) {
            NSLog(@"failed to retrieve image asset:\nError: %@ ", [error localizedDescription]);
        }];

}

【问题讨论】:

    标签: ios objective-c iphone video ios-camera


    【解决方案1】:

    这是保存视频并将该视频添加到自定义相册中的代码 sn-p ..

     [library writeVideoAtPathToSavedPhotosAlbum:videoInputUrl completionBlock:^(NSURL *assetURL, NSError *error){
        if (error) {
    
            NSLog(@"Final Video could not be saved");
        }
        else{
    
                [library assetForURL:assetURL
                         resultBlock:^(ALAsset *asset) {
                             // assign the photo to the album
                             [groupToAddTo addAsset:asset];
                             NSLog(@"Added %@ to %@", [[asset defaultRepresentation] filename], albumName);
                             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Video Saved to HubRamped Album."  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil, nil];
                             [alert show];
                         }
                        failureBlock:^(NSError* error) {
                            NSLog(@"failed to retrieve image asset:\nError: %@ ", [error localizedDescription]);
                        }];
        }
    }];
    

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2012-07-17
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多