1

ダウンロードした動画ファイルを画像ギャラリーに保存したいのですが、保存できません。修正方法を教えてください。

ありがとう、

4

4 に答える 4

0

UISaveVideoAtPathToSavedPhotosAlbumを使用して保存できます

解決

UISaveVideoAtPathToSavedPhotosAlbum(yourVideoPath, nil, nil, nil);

ビデオのパスを取得するには、どこかに保存する必要があります。宛先パスに保存できます。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSString * yourVideoPath = [basePath stringByAppendingPathComponent:@"video.mov"];

[yourVideoData writeToFile:yourFilePath atomically:YES];
于 2013-08-27T06:31:33.120 に答える
0

このリンクを試してもらえますか??

これにより、指定されたパスにあるムービーがユーザーのカメラ ロール アルバムに追加されます。

void UISaveVideoAtPathToSavedPhotosAlbum (
   NSString  *videoPath,
   id        completionTarget,
   SEL       completionSelector,
   void      *contextInfo
);

さらなるガイダンスは、私が指定した上記のリンクにあります

さらに便利なリンクはこれです

それが役に立てば幸い ..

于 2013-08-27T06:32:47.377 に答える
0

これを試してみてください...

NSURL *videoUrl = [NSURL URLWithString:[NSString stringWithFormat:@"Your Video Url"]];

dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(q, ^{

NSData *videoData = [NSData dataWithContentsOfURL:videoUrl];

dispatch_async(dispatch_get_main_queue(), ^{

    // Write it to cache directory
    NSString *videoPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"file.mov"];
    [videoData writeToFile:videoPath atomically:YES];

    // After that use this path to save it to PhotoLibrary
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:videoPath] completionBlock:^(NSURL *assetURL, NSError *error)
     {
         if (error)
         {
             NSLog("Error");
         }
         else
         {
             NSLog("Success");
         }

        }];
    });
});
于 2016-03-11T11:36:10.483 に答える