1

データベースに保存されたYoutubeビデオを再生する機能をユーザーに提供する1つのアプリに取り組んでいます。また、ユーザーが必要に応じて、ビデオを更新できます。

http://www.youtube.com/watch?v=1Ziku4FLka4のようなリンクを DB に保存し、以下のようなコードを実装したボタンのクリックで同じリンクを再生しているとします。

   UIWebView *wv;

strUTube = @"http://www.youtube.com/watch?v=1Ziku4FLka4";

        wv = [[UIWebView alloc] initWithFrame:CGRectMake(0,10,viewBG.frame.size.width,viewBG.frame.size.height)];


    NSMutableString *html = [[NSMutableString alloc] initWithCapacity:1];
    [html appendString:@"<html><head>"];
    [html appendString:@"<style type=\"text/css\">"];
    [html appendString:@"body {"];
    [html appendString:@"background-color: transparent;"];
    [html appendString:@"color: brown;"];
    [html appendString:@"}"];
    [html appendString:@"</style>"];
    [html appendString:@"</head><body style=\"margin:0\">"];
    [html appendFormat:@"<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\"", strUTube];

    [html appendFormat:@"width=\"%0.0f\" height=\"%0.0f\"></embed>", viewBG.frame.size.width,viewBG.frame.size.height];
    [html appendString:@"</body></html>"];

    NSLog(@"html:%@",html);
    [wv loadHTMLString:html baseURL:nil];
    [viewBG addSubview:wv];

    [self.view addSubview:viewBG];

次に、別のボタン クリックで、Youtube のホームページを呼び出し、ボタン クリック イベントで開かれた URL を次のコードで取得しています。

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
NSLog(@"currentURL2 : %@",currentURL);

しかし、URL はhttp://m.youtube.com/watch?feature=m-trends&v=to7uIG8KYhgのような結果になり、後で再生することはできません。

Mac Book でも URL を開こうとしましたが、うまくいきませんでした。

4

2 に答える 2

1

まず、新しいiFrameメソッドを使用してチューブビデオを埋め込みます。以下は、コードから幅、高さ、ビデオID、およびisAutoplayを入力できるテンプレートURLです。

<html>
<head>
    <meta name="viewport" content="initial-scale = 1.0,maximum-scale = 1.0" />
</head>
    <body style="margin:0;padding:0;" bgcolor="#000000">
        <iframe class="youtube-player" background-color:#000000 allowtransparency= "true" type="text/html" width=%f height=%f src="http://www.youtube.com/embed/%@?fs=1&autoplay=%d&loop=%d&rel=0&version=3&enablejsapi=1&showinfo=0" frameborder="0" allowfullscreen>
        </iframe>
    </body>
</html>

NSString   *youTubeHTMLTemplate = [NSString stringWithContentsOfFile: path 
                                                         encoding: NSUTF8StringEncoding 
                                                            error: &error];
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, htmlFrameWidth, htmlFrameHeight, videoID, isAutoplay];

組み込みのNSStringメソッドを使用して、YouTubeのビデオURLからビデオIDを簡単に抽出できます。

于 2012-09-01T05:32:34.713 に答える
0

currentURL の下から videoID を抽出する簡単なトリック:

    http://m.youtube.com/watch?feature=m-trends&v=to7uIG8KYhg 

次のような新しいYoutube VideoURLを作成します

  NSString *newVideoURL = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=%@",extractedVideoID];

この newVideoURL を埋め込みプレーヤーで再生します。

http://www.youtube.com/watch?v=to7uIG8KYhg

于 2012-09-01T05:26:20.230 に答える