Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios I';我无法在文档目录中保存或下载视频,也无法从文档目录中播放_Ios_Video_Download_Youtube_Mpmovieplayercontroller - Fatal编程技术网

Ios I';我无法在文档目录中保存或下载视频,也无法从文档目录中播放

Ios I';我无法在文档目录中保存或下载视频,也无法从文档目录中播放,ios,video,download,youtube,mpmovieplayercontroller,Ios,Video,Download,Youtube,Mpmovieplayercontroller,我想下载或在文档目录中保存youtube视频,然后使用MPMoviePlayerViewController播放该视频。但我不知道为什么我的代码不起作用 我正在使用以下代码: prgrma标记-下载或保存 pragma标记-从文档目录播放视频 因为您在url中提供的链接是为youtube提供的,所以它不会下载或保存在本地 将此用于youtube 我使用了这个项目的课程:它对我来说很好。我可以下载youtube视频 LBYouTubeExtractor *extractor = [[[LBYouT

我想下载在文档目录中保存youtube视频,然后使用MPMoviePlayerViewController播放该视频。但我不知道为什么我的代码不起作用

我正在使用以下代码:

prgrma标记-下载或保存 pragma标记-从文档目录播放视频
因为您在url中提供的链接是为youtube提供的,所以它不会下载或保存在本地

将此用于youtube

我使用了这个项目的课程:它对我来说很好。我可以下载youtube视频

LBYouTubeExtractor *extractor = [[[LBYouTubeExtractor alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:(@"http://www.youtube.com/watch?v=%@"), self.videoID ]] quality:LBYouTubeVideoQualityLarge] autorelease];
[extractor extractVideoURLWithCompletionBlock:^(NSURL *videoURL, NSError *error) {
    if(!error) {
        NSLog(@"Did extract video URL using completion block: %@", videoURL);

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSData *data = [NSData dataWithContentsOfURL: videoURL];
            NSString *pathToDocs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
            NSString *filename = [NSString stringWithFormat:(@"video_%@.mp4"), self.videoID ];
            [data writeToFile:[pathTODocs stringByAppendingPathComponent:filename] atomically:YES];
            NSLog(@"File %@ successfully saved", filename);
        });
    } else {
        NSLog(@"Failed extracting video URL using block due to error:%@", error);
    }
}];

在iOS 9中,MPMoviePlayerController类被正式弃用。(mpmovieplayervicewcontroller类也被正式弃用。)要在iOS 9及更高版本中播放视频内容,请使用AVKit框架中的AVPictureInPictureController或AVPlayervicewcontroller类,或者WebKit中的WKWebView类。您不能直接从url下载youtube视频,而且其应用商店也不安全。苹果将不允许从第三方下载视频party@SunnyShah:那么,从URL下载tube视频的其他选项是什么?请转到我的答案@moni_bq希望这能帮助您:提取视频URL时出现错误
使用块时出现错误:错误域=LBYouTubeExtractorErrorDomain Code=2“找不到流URL”。用户信息={NSLocalizedDescription=找不到流URL。}
-(IBAction)onclick_playvideolocally:(id)sender
{
    [self playvideolocally];
}
-(void)playvideolocally
{
    NSURL *videoUrl;
    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];
        videoUrl =[NSURL fileURLWithPath:fullpath];
    }
    MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:videoUrl];
    [self presentMoviePlayerViewControllerAnimated:videoPlayerView];
    [videoPlayerView.moviePlayer play];
}
LBYouTubeExtractor *extractor = [[[LBYouTubeExtractor alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:(@"http://www.youtube.com/watch?v=%@"), self.videoID ]] quality:LBYouTubeVideoQualityLarge] autorelease];
[extractor extractVideoURLWithCompletionBlock:^(NSURL *videoURL, NSError *error) {
    if(!error) {
        NSLog(@"Did extract video URL using completion block: %@", videoURL);

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSData *data = [NSData dataWithContentsOfURL: videoURL];
            NSString *pathToDocs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
            NSString *filename = [NSString stringWithFormat:(@"video_%@.mp4"), self.videoID ];
            [data writeToFile:[pathTODocs stringByAppendingPathComponent:filename] atomically:YES];
            NSLog(@"File %@ successfully saved", filename);
        });
    } else {
        NSLog(@"Failed extracting video URL using block due to error:%@", error);
    }
}];