0

だから私は、ユーザーがビデオを録画したり、フォトライブラリからビデオを選んだりして、そのビデオをサーバーにアップロードできるアプリを持っています。ビデオを録画した後、アセットのURLを取得します。

次のコードを使用して、NSDataをassetURLに設定しようとしています。

NSString *vidString =[NSString stringWithFormat:@"%@",savedVideoURL];
NSURL *vidURL = [NSURL URLWithString:vidString];
NSData *videoData = [NSData dataWithContentsOfURL:vidURL];

savedVideoURLは、記録中に取得されたアセットURLです。アセットのURLは次のようになります。assets-library://asset/asset.MOV?id=6EB7A04D-3DF8-44E5-A6D8-FD98461AE75E&ext=MOV

NSDataをそのURLに設定しようとすると、その後もNSDataはnilになります。

次のソリューションを機能させることができませんでした:ALAsseturliOSからビデオNSDataを取得する

NSDataをそのアセットのURLに設定する方法を知っている人はいますか?

前もって感謝します!

4

1 に答える 1

8

インポートすることを忘れないでください:AssetsLibrary / ALAssetRepresentation.h

およびコード:

 ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:YOURURL resultBlock:^(ALAsset *asset) // substitute YOURURL with your url of video
    {
        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];//this is NSData may be what you want
        [data writeToFile:photoFile atomically:YES]; //you can remove this if only nsdata needed
    } 
    failureBlock:^(NSError *err) {
        NSLog(@"Error: %@",[err localizedDescription]);
    }];
于 2012-10-25T04:40:01.817 に答える