iOS: How to save a video in your directory and play it afterwards?

江枫思渺然 提交于 2019-12-19 03:41:41

问题


I am working in an iOS project. I want may application to download a video from the internet programmatically. Then I want to play it. I know how can I play a local video from the Resources, but my question is how could I download it , and the find it to be played. I am using MPMoviePlayerController to run the video.

Thanking in advance


回答1:


I found the answer

here I saved the video

    NSString *stringURL = @"http://videoURL";
NSURL  *url = [NSURL URLWithString:stringURL];
NSData *urlData = [NSData dataWithContentsOfURL:url];
NSString  *documentsDirectory ;
if ( urlData )
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
   documentsDirectory = [paths objectAtIndex:0];

    NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"videoName.mp4"];
    [urlData writeToFile:filePath atomically:YES];

}

and this code is for playing the video form its directory

    NSString  *filepath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"videoName.mp4"];

//video URL
NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[moviePlayerController play];



回答2:


If you have a valid url of the video, Apple provides an API to directly buffer videos with NSURL.

  1. You should hold a reference to the MPMoviePlayerController object from the controller so that ARC doesn't release the object.

    @property (nonatomic,strong) MPMoviePlayerController* mc; 
    
  2. Make the URL

    NSURL *url = [NSURL URLWithString:@"http://www.example.com/video.mp4"];
    
  3. Init MPMoviePlayerController with that URL

    MPMoviePlayerController *controller = [[MPMoviePlayerController alloc] initWithContentURL:url];
    
  4. Resize the controller, add it to your view, play it and enjoy the video.

    self.mc = controller; // so that ARC doesn't release the controller
    controller.view.frame = self.view.bounds;
    [self.view addSubview:controller.view];
    [controller play]; //Start playing 
    

For more detail you can visit this playing video from a url in ios7



来源:https://stackoverflow.com/questions/30010643/ios-how-to-save-a-video-in-your-directory-and-play-it-afterwards

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!