iOS: 如何将视频保存到您的目录中,然后再播放?

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

我在 iOS 项目中工作。我希望应用程序可以从互联网 programmatically 下载 video。然后我想玩它。我知道如何从 Resources 播放本地视频,但我的问题是如何下载它并找到要播放的视频。 我正在使用 MPMoviePlayerController 来 运行 视频。

提前致谢

如果你有一个有效的 url 视频,Apple 提供了一个 API 来直接缓冲带有 NSURL 的视频。

  1. 您应该从控制器中持有对 MPMoviePlayerController 对象的引用,这样 ARC 就不会释放该对象。

    @property (nonatomic,strong) MPMoviePlayerController* mc; 
    
  2. 制作URL

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

    初始化 MPMoviePlayerController
    MPMoviePlayerController *controller = [[MPMoviePlayerController alloc] initWithContentURL:url];
    
  4. 调整控制器大小,将其添加到您的视图中,播放并欣赏视频。

    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 
    

更多详细信息,您可以访问此playing video from a url in ios7

我找到了答案

这里我保存了视频

    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];

}

此代码用于播放其目录中的视频

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

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