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

前端 未结 2 927
小蘑菇
小蘑菇 2021-01-06 06:25

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.

相关标签:
2条回答
  • 2021-01-06 07:02

    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];
    
    0 讨论(0)
  • 2021-01-06 07:03

    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

    0 讨论(0)
提交回复
热议问题