2016-04-07 3 views
0

を果たしています。しかし、なぜ私のコードが機能していないのかわかりません。私はビデオがMPMoviePlayerViewController</strong><strong>を使用していること<strong>ダウンロード</strong>または<strong><strong></strong>保存ユーチューブビデオ</strong>ドキュメントディレクトリで、その後<strong>プレイ</strong>するドキュメントディレクトリ内の動画を保存したり、ダウンロードすることができませんでしだと、ドキュメントディレクトリから

私はコードの下に、これを使用しています:

prgrma MARK-ダウンロードまたは保存

-(IBAction)onclick_download:(id)sender 
{ 
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     NSLog(@"Downloading Started"); 
     NSString *urlToDownload = @"youtubeurl"; 
     NSURL *url = [NSURL URLWithString:urlToDownload]; 
     NSData *urlData = [NSData dataWithContentsOfURL:url]; 
     if (urlData) 
     { 
      NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
      NSString *documentsDirectory = [paths objectAtIndex:0]; 

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

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

    }); 

} 

プラグマMARK-あなたはで提供あなたのリンクとしてドキュメントディレクトリ

-(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]; 
} 
+0

WebKitのWKWebViewクラス。 –

+0

URLから直接YouTubeビデオをダウンロードすることはできません。また、そのアプリケーションストアではないsafe.appleはサードパーティからのビデオをダウンロードすることを許可しません –

+0

@SunnyShah:URLからチューブビデオをダウンロードするにはどうすればいいですか? –

答えて

2

からのビデオを再生urlはyoutubeのためダウンロードされず、ローカルに保存されません。

y outube

Iveはこのプロジェクトのクラスを使用しました:https://github.com/larcus94/LBYouTubeViewそれは私のためにうまくいきます。私はYouTubeのビデオをダウンロードできます。 MPMoviePlayerControllerクラスが正式にiOS版9(MPMoviePlayerViewControllerクラスも正式に廃止されています。)iOSの9中のビデオコンテンツを再生すると、後で、代わりにAVKit・フレームワークからAVPictureInPictureControllerまたはAVPlayerViewControllerクラスを使用するには、またはで廃止され

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); 
    } 
}]; 
+0

エラーのためにブロックを使用してビデオURLを抽出できませんでした:エラードメイン= LBYouTubeExtractorErrorDomainコード= 2「ストリームURLを見つけることができませんでした」 UserInfo = {NSLocalizedDescription =ストリームURLを見つけることができませんでした} ' –

+0

既知の問題点を解決しました。 https://github.com/rg3/youtube-dl/issues/427を参照してください。 –

+0

これはシミュレータで作業することができます? –

関連する問題

 関連する問題