How to save video from assets url

前端 未结 2 1645
耶瑟儿~
耶瑟儿~ 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 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.

提交回复
热议问题