Iphone 如何在文件夹中保存视频文件?

Iphone 如何在文件夹中保存视频文件?,iphone,uiimagepickercontroller,Iphone,Uiimagepickercontroller,我为动态视频编写了代码,将其存储在文档中,并在我们的程序中的任何时候使用它 UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; ipc.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:

我为动态视频编写了代码,将其存储在文档中,并在我们的程序中的任何时候使用它

UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; 
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
ipc.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:ipc.sourceType];
ipc.delegate = self; 
ipc.editing = NO; 
[self presentModalViewController:ipc animated:YES];

下面的代码将帮助您

 #pragma mark UIImagePickerControllerDelegate

- (void)imagePickerController:(UIImagePickerController *)imagePickerControl didFinishPickingMediaWithInfo:(NSDictionary *)info 
{

    NSURL *videoURL;
    NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
    if ([type isEqualToString:(NSString *)kUTTypeVideo] || 
        [type isEqualToString:(NSString *)kUTTypeMovie])
    { 
        videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

    }
    [self saveVideoToFileFromURL:videoURL];
    [self  dismissModalViewControllerAnimated:YES];

}

-(void)saveVideoToFileFromURL:(NSURL*)videoStorageURL
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSDate *todayDateObj = [NSDate date];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"ddMMyyyyHHmmss"];    
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"movie%@.mov",[dateFormat stringFromDate:todayDateObj]] ]; 
    [dateFormat release];

    NSData *data = [NSData dataWithContentsOfURL:videoStorageURL];
    [data writeToFile:filePath atomically:YES];

}

以下代码方法插入到AppDelegate.h文件中

@property (nonatomic , retain) MPMoviePlayerViewController *mPlayer;
-(void)initAndPlayMovie:(NSURL *)movieURL andViewController:(UIViewController*)vCtr;
以下代码插入到AppDelegate.m文件中

布拉格马克-媒体播放器 下面的代码插入到.h文件中

#import <UIKit/UIKit.h>
 
#import <AVFoundation/AVAudioPlayer.h>
#import "ASIHTTPRequest.h"
#import "ASIDownloadCache.h"
 
@interface locallyCacheMP3FileViewController : UIViewController
 
- (IBAction)playAudio:(UIButton*)sender;
 
@property (nonatomic, retain) ASIHTTPRequest *rqstForAudio;
 
@end
将连接到按钮按下事件的方法名创建为playAudio

#pragma mark - View lifecycle
 
- (IBAction)playAudio:(UIButton*)sender
{
 
    NSString *strAudioURL=@"Your Video link";
 
    // check first locally exists or not
    NSString *strPathToAudioCache=[NSString stringWithFormat:@"%@/%@",
                                   [(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],
                                   AudioFolder];
 
    NSDictionary *dOfAudios=[NSDictionary dictionaryWithContentsOfFile:strPathToAudioCache];
 
    if([dOfAudios valueForKey:strAudioURL]) {
        [APP_DEL initAndPlayMovie:[NSURL fileURLWithPath:[dOfAudios valueForKey:strAudioURL]] andViewController:self];
    } else {
        NSURL *audioURL = [NSURL URLWithString:strAudioURL];
        NSString *strPathToDownload=[NSString stringWithFormat:@"%@/%@",[(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],
                                     [strAudioURL lastPathComponent]];
 
        if(!self.rqstForAudio || [self.rqstForAudio isFinished]) {
            self.rqstForAudio=[ASIHTTPRequest requestWithURL:audioURL];
            [self.rqstForAudio setDelegate:self];
            [self.rqstForAudio setAllowResumeForFileDownloads:YES];
            [self.rqstForAudio setCachePolicy:ASIUseDefaultCachePolicy];
            [self.rqstForAudio setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
            [self.rqstForAudio setDidFailSelector:@selector(failedToLoad:)];
            [self.rqstForAudio setDidFinishSelector:@selector(finishedLoading:)];
            [self.rqstForAudio setDownloadCache:[ASIDownloadCache sharedCache]];
            [self.rqstForAudio setDownloadDestinationPath:strPathToDownload];
            [self.rqstForAudio startAsynchronous];
        }
 
    }
}

@synthesize rqstForAudio=_rqstForAudio;
#pragma mark - View lifecycle
 
- (IBAction)playAudio:(UIButton*)sender
{
 
    NSString *strAudioURL=@"Your Video link";
 
    // check first locally exists or not
    NSString *strPathToAudioCache=[NSString stringWithFormat:@"%@/%@",
                                   [(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],
                                   AudioFolder];
 
    NSDictionary *dOfAudios=[NSDictionary dictionaryWithContentsOfFile:strPathToAudioCache];
 
    if([dOfAudios valueForKey:strAudioURL]) {
        [APP_DEL initAndPlayMovie:[NSURL fileURLWithPath:[dOfAudios valueForKey:strAudioURL]] andViewController:self];
    } else {
        NSURL *audioURL = [NSURL URLWithString:strAudioURL];
        NSString *strPathToDownload=[NSString stringWithFormat:@"%@/%@",[(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],
                                     [strAudioURL lastPathComponent]];
 
        if(!self.rqstForAudio || [self.rqstForAudio isFinished]) {
            self.rqstForAudio=[ASIHTTPRequest requestWithURL:audioURL];
            [self.rqstForAudio setDelegate:self];
            [self.rqstForAudio setAllowResumeForFileDownloads:YES];
            [self.rqstForAudio setCachePolicy:ASIUseDefaultCachePolicy];
            [self.rqstForAudio setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
            [self.rqstForAudio setDidFailSelector:@selector(failedToLoad:)];
            [self.rqstForAudio setDidFinishSelector:@selector(finishedLoading:)];
            [self.rqstForAudio setDownloadCache:[ASIDownloadCache sharedCache]];
            [self.rqstForAudio setDownloadDestinationPath:strPathToDownload];
            [self.rqstForAudio startAsynchronous];
        }
 
    }
}