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