私のアプリケーション(ドキュメントフォルダ)にmp4ビデオがあります!コピーまたはフォトライブラリに移動したい...どうすればよいですか?私を助けてください!
質問する
1505 次
3 に答える
1
assestライブラリを使用したくない場合は、次のコードを使用してください
NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *videoFile = [documentDirectory stringByAppendingPathComponent:@"video.mp4"];
UISaveVideoAtPathToSavedPhotosAlbum(videoFile, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
- (void)video:(NSString *) videoPath didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo {
if(error)
NSLog(@\"didFinishSavingWithError: %@\", error);
}
于 2013-02-20T09:44:33.590 に答える
0
私はあなたが使うことができると思います:
- (void)writeVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock
からの方法ALAssetsLibrary
于 2013-02-20T09:38:30.220 に答える
0
フォトライブラリ(iOSではカメラロールと呼ばれます)に移動するには:
NSString *fileURLString = @"file://....somepath.../somefile.mp4";
NSURL *fileURL = [NSURL URLWithString:fileURLString];
// Check compatibility
if ([[ALAssetsLibrary new] videoAtPathIsCompatibleWithSavedPhotosAlbum:fileURL]) {
// Save to Photo Library / Camera Roll
[[ALAssetsLibrary new] writeVideoAtPathToSavedPhotosAlbum:fileURL completionBlock:nil];
} else {
NSLog(@"Incompatible type. Cannot save to Photo Library.");
}
おそらくこれをしたくないが、任意のフォルダにコピーするには:
NSFileManager *fileManager = [NSFilemanager defaultManager];
NSURL *originalDirectory = [NSURL fileURLWithPath:@"/originalDir/filename.mp4"];
NSURL *newDirectory = [NSURL fileURLWithPath:@"/newDirectory/filename.mp4"];
[fileManager moveItemAtURL:originalDirectory toURL:newDirectory error:nil];
最初にダウンロードする必要がある場合は、次のようにします。
次のように使用ALAssetsLibrary
します。
#import <AssetsLibrary/AssetsLibrary.h>
// ...
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary writeVideoAtPathToSavedPhotosAlbum:yourVideoURL completionBlock:^(NSURL *assetURL, NSError *error){
if (error) {
// Do something, like show an Alert View describing the error
}
}];
于 2015-01-07T22:01:32.673 に答える