アプリでのYoutubeビデオの再生は簡単で、文書化されています。
これには2つの問題があります。
誰かがするコードを持っていますか:
YouTubeからビデオをダウンロードするには:
NSTemporaryDirectory()
またはDocumentsディレクトリの一時的なファイル)。sendSynchronousRequest:returningResponse:error:
、 もちろん。connection:didReceiveResponse:
デリゲートメソッド。ダウンロードするデータの長さを読み取り、プログレスバーを適切に更新します。connection:didReceiveData:
デリゲートメソッド、出力ストリーム/ファイルハンドルにデータを書き込み、必要に応じて進行状況バーを更新します。connectionDidFinishLoading:
またはconnection:didFailWithError:
、出力ストリーム/ファイルハンドルを閉じ、必要に応じて一時ファイルの名前を変更または削除します。再生するには、NSURLのfileURLWithPath:
を使用して、Documentsディレクトリのローカルファイルを指すURLを作成し、リモートビデオと同じように再生します。
このプロジェクトのクラスを使用しました: https://github.com/larcus94/LBYouTubeView それは私にとってはうまくいきます。 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);
}
}];
上記の投稿で説明されている手法を使用して、ダウンロードの進行状況を表示できます。
これが私の例です: https://github.com/comonitos/youtube_video
Peter SteinbergerによるPSYouTubeExtractor.hクラスを使用しました。YouTubeのmp4ビデオのURLを取得でき、ダウンロードや表示よりも問題ありません。
NSURLConnection + NSNotificationCenter + PSYouTubeExtractor + NSMutableData
私はYouTubeビデオをダウンロードする方法を個人的に知りません(コードが大きすぎてここで答えを出すことができません)。
ただし、これは完全なyoutubeのダウンロード例 here です。これは、LoadTubeと呼ばれるオープンソースのYouTubeダウンローダーです: これがソースコードへのリンクです 。
これらのプロジェクトを確認してください-
https://github.com/iosdeveloper/MyTube
https://github.com/pvinis/mytube
これらは間違いなくあなたを助けます!!
ビデオを再生して、一時ファイルが保存されている場所を見つけます。アクセスできる場合は、オフラインで表示できるようにドキュメントフォルダにコピーしてください。