0

このコードを使用して、UIWebView で YouTube ビデオを再生します

- (void)embedYouTube {

UIWebView *webView = [[[UIWebView alloc] initWithFrame:self.view.bounds] autorelease];
webView.autoresizesSubviews = YES;
webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
// iframe
videoHTML = [NSString stringWithFormat:@"\
             <html>\
             <head>\
             <style type=\"text/css\">\
             iframe {position:absolute; top:50%%; margin-top:-130px;}\
             body {background-color:#000; margin:0;}\
             </style>\
             </head>\
             <body>\
            <iframe width=\"560%%\" height=\"315px\" src=\"%@\"http://www.youtube.com/embed/j9CukQje2qw\" frameborder=\"0\" allowfullscreen></iframe>\
             </body>\
             </html>", videoURL];

             [videoView loadHTMLString:videoHTML baseURL:nil];

}

このLaunchVideo UIButtonをクリックすると、iOSデバイスに黒い画面が表示されます

-(void)LaunchVideo:(id)sender
{
self.videoURL = @"http://www.youtube.com/embed/j9CukQje2qw";

WebViewController *webViewController = [[[WebViewController alloc] initWithNibName:nil bundle:nil] autorelease];

webViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
webViewController.videoURL = self.videoURL;

[self presentModalViewController:webViewController animated:YES];

}

このコードで何が欠けているか、間違っているかを誰かが指摘できれば。YouTube動画が表示されない理由。プログラムで行うインターフェイスビルダーを使用していません。このプロジェクト コードは Web から入手しました。このプロジェクトコードをiOSデバイスで試してみましたが、そのプロジェクトでは問題なく動作しますが、プロジェクトにコードを適用すると動作しません。Web からの彼のプロジェクト コードがインターフェイス ビルダーを使用し、プログラムでそれを実行しているという唯一の違いがあります。

このコードの問題点を教えてください。

手伝ってくれてありがとう。

4

1 に答える 1

2

YouTube ビデオをアプリにロードする別の方法を次に示します。最初に、UIWebView をインターフェイスに配置し、ビデオを表示するサイズに合わせてサイズを変更します (フルスクリーンにするためのボタンがあります)。次に、IBOutlet を作成して、非表示のプロパティを変更できるようにします (ポップアップして消えます) ここにいくつかのコードがあります。コードには、webviewshow と呼ばれるメソッドが使用されています。これは、基本的に webview.hidden = NO; と言う単純なメソッドを呼び出します。webviewbutton.hidden = いいえ; 次に、タップするとWebビューが消えるボタンもポップアップします。YouTubeビデオをWebビューにロードするコードは次のとおりです

// Create your query ...
    NSString* searchQuery = [NSString stringWithFormat:@"http://www.youtube.com/embed/j9CukQje2qw];

    // Be careful to always URL encode things like spaces and other symbols that aren't URL friendly
    searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

    // Now create the URL string ...
    NSString* urlString = searchQuery;

    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

    [webView loadRequest:request]; currentTimer= [NSTimer      scheduledTimerWithTimeInterval:2 target:self selector:@selector(webviewshow) userInfo:nil repeats:NO];;

Web ビューが表示されるまで 2 秒 (ほとんどの接続の通常の待機時間) 待機するため、ページが読み込まれ、ユーザーはページが読み込まれるのを見る必要がありません。

次に、ビデオを消したい場合は、次のようにWebビューを閉じるメソッドを作成します

- (void) makewebviewGoAway {webview.hidden = YES; webviewbutton.hidden = YES;}

うまくいけば、それは役に立ちました。さらにヘルプや説明が必要な場合は、これについてコメントしてください。

于 2012-08-15T01:19:25.010 に答える