How to save video from assets url

前端 未结 2 1640
耶瑟儿~
耶瑟儿~ 2020-12-25 09:27

I want to save video to my app document from asset url. My asset url is as follows:-

\"assets-library://asset/asset.MOV?id=1000000394&ext=MOV\"


        
相关标签:
2条回答
  • 2020-12-25 09:43

    thanks for this.. all i needed to change was

        errorBlock:^(NSError *err)
    

    to this:

        failureBlock :^(NSError *err)
    
    0 讨论(0)
  • 2020-12-25 10:00

    I think your best bet is to use the method

    getBytes:fromOffset:length:error:
    

    of

    ALAssetRepresentation
    

    You can get the default representation of an asset like so

    ALAssetRepresentation *representation = [someVideoAsset defaultRepresentation];
    

    So off the top of my head it should go something like this (I'm away from my Mac so this hasn't been tested)

    ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:videoUrl resultBlock:^(ALAsset *asset) {
        ALAssetRepresentation *rep = [asset defaultRepresentation];
        Byte *buffer = (Byte*)malloc(rep.size);
        NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
        NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];
        [data writeToFile:filePath atomically:YES];
    } errorBlock:^(NSError *err) {
        NSLog(@"Error: %@",[err localizedDescription]);
    }];
    

    Where videoUrl is the asset url of the video you're trying to copy, and filePath is the path where you're trying to save it to.

    0 讨论(0)
提交回复
热议问题