如何从url下载视频将其保存在目录中并在ios中使用MPMovie player播放

如何从url下载视频将其保存在目录中并在ios中使用MPMovie player播放,ios,objective-c,Ios,Objective C,我一直尝试下载,但下载的视频显示不支持plz帮助谢谢帮助 这是我的密码: 从url代码下载视频 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"Downloading Started"); NSString *urlToDownload = @"http://cdn-fms.rbs.com.br/vod/hls_sample1_manifest.m3u

我一直尝试下载,但下载的视频显示不支持plz帮助谢谢帮助

这是我的密码:

从url代码下载视频

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSLog(@"Downloading Started");
    NSString *urlToDownload = @"http://cdn-fms.rbs.com.br/vod/hls_sample1_manifest.m3u8";
    NSURL  *url = [NSURL URLWithString:urlToDownload];
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    if ( urlData )
    {

        NSLog(@"urldata %@   ",urlData);
        NSArray   *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString  *documentsDirectory = [paths objectAtIndex:0];

        NSString  *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"thefifle2.mov"];

        //saving is done on main thread
        dispatch_async(dispatch_get_main_queue(), ^{
            [urlData writeToFile:filePath atomically:YES];
            NSLog(@"File Saved !%@",filePath);
             _url = [NSURL URLWithString:filePath];
            [self playv];

        });
    }

});
使用MPMoviepLayercontroller播放下载的视频

    NSURL *vedioURL;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];
NSLog(@"files array %@", filePathsArray);

NSString *fullpath;

for (NSString *apath in filePathsArray )
{
     fullpath = [documentsDirectory stringByAppendingPathComponent:apath];
    vedioURL =[NSURL fileURLWithPath:fullpath];

}

 NSData *urlData1 = [NSData dataWithContentsOfURL:vedioURL];
 NSLog(@" url data1 %@  ",urlData1);
NSLog(@"vurl %@",vedioURL);
MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL];
[self presentMoviePlayerViewControllerAnimated:videoPlayerView];
[videoPlayerView.moviePlayer play];

你知道你的URL实际上并不指向“视频”文件吗


.m3u8文件不是实际的资产文件,而是更类似于播放列表。它们用于HTTP实时流媒体,并根据可用带宽为“片段”提供位置

您知道您的URL实际上并不指向“视频”文件吗


.m3u8文件不是实际的资产文件,而是更类似于播放列表。它们用于HTTP实时流媒体,并根据可用带宽为“片段”提供位置

我尝试了一些适用于我的mp4示例

//download the file in a seperate thread.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSLog(@"Downloading Started");
    NSString *urlToDownload = @"http://techslides.com/demos/sample-videos/small.mp4";
    NSURL  *url = [NSURL URLWithString:urlToDownload];
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    if ( urlData )
    {

        NSLog(@"urldata %@   ",urlData);
        NSArray   *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString  *documentsDirectory = [paths objectAtIndex:0];

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

        //saving is done on main thread
        dispatch_async(dispatch_get_main_queue(), ^{
            [urlData writeToFile:filePath atomically:YES];
            NSLog(@"File Saved !%@",filePath);
             _url = [NSURL URLWithString:filePath];


        });
    }

});

我尝试了一些对我有用的mp4示例

//download the file in a seperate thread.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSLog(@"Downloading Started");
    NSString *urlToDownload = @"http://techslides.com/demos/sample-videos/small.mp4";
    NSURL  *url = [NSURL URLWithString:urlToDownload];
    NSData *urlData = [NSData dataWithContentsOfURL:url];
    if ( urlData )
    {

        NSLog(@"urldata %@   ",urlData);
        NSArray   *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString  *documentsDirectory = [paths objectAtIndex:0];

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

        //saving is done on main thread
        dispatch_async(dispatch_get_main_queue(), ^{
            [urlData writeToFile:filePath atomically:YES];
            NSLog(@"File Saved !%@",filePath);
             _url = [NSURL URLWithString:filePath];


        });
    }

});

谢谢你MDB983。你能发送url下载视频文件吗?我必须以何种格式存储这些视频?谢谢你MDB983。你能发送url下载视频文件吗?我必须以何种格式存储这些视频?这是我的观点,原始url不是资产文件。m3u8文件本质上是一个xml文件,因此您尝试播放一个类似于xml文件的东西。感谢这帮助我分配。这是我的观点,原始url不是资产文件。m3u8文件本质上是一个xml文件,因此您尝试播放类似于xml文件的内容。谢谢这帮助我分配。我在这里遇到了相同的问题:我在这里遇到了相同的问题: