3

私は、次のコードでuiwebviewsを使用して、iOSアプリ内でビデオを再生していました。

NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";

NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width, frame.size.height];
self.videoView = [[UIWebView alloc] initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.videoView setDelegate:self];
[self.view addSubview:videoView];
[videoView release];

iOS6では機能しません。

iOS6でコンパイルしたYouTubeビデオを再生するための解決策を見つけた人はいますか?

ありがとう

4

6 に答える 6

1

わかりました、これが答えです。

http://www.youtube.com/v/XXXXXXXを使用する

http://www.youtube.com/watch?v=XXXXXXXの代わりに。

ここでそれを見つけてください:

iOS-解析エラーのためにUIWebViewが機能しない

于 2012-09-23T17:34:04.083 に答える
0

iOS6シミュレーターとiOS5デバイスでテストしましたが、新しい埋め込みコード(iframe)を使用すると、機能します。

<iframe class="youtube-player" type="text/html" width="320" height="200" src="http://www.youtube.com/embed/VIDEOID" frameborder="0"></iframe>

唯一の欠点は、iframeにダウンロードされる多くのdom要素が含まれていることです。

于 2012-09-23T17:46:17.153 に答える
0

コードを次のように置き換えます

   NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;\
    color: white;\
    }\
    </style>\
    </head><body style=\"margin:0\">\
    <iframe title=\"YouTube Video\" class=\"youtube-player\" type=\"text/html\"\
    width=\"%0.0f\" height=\"%0.0f\" src=\"%@\"\
    frameborder=\"0\" allowFullScreen ></iframe>";
    NSString *urlToOpen = @"http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1";
    NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width,     frame.size.height];
    self.videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.videoView setDelegate:self];
    [self.view addSubview:videoView];
    [videoView release];

Youtubeがwebviewビデオを破棄し、iframeを導入したため、このhtmlをios 6に使用する必要があり、ios5には古いものを使用する必要があります。また、YouTubeビデオのURLリンクは http://www.youtube.com/embed/video_Id?autoplay=1のよう にする必要があり、video_Idを独自のビデオIDに置き換えることができます。

于 2012-12-04T12:05:58.660 に答える
0

Phonegapに埋め込みを使用する場合は、Phonegap設定でOpenAllWhitelistURLsInWebViewをYESに設定しています。

于 2012-12-13T16:27:32.817 に答える
0

iOS6でWebviewを使用するYoutubeでは、WebViewで有効なCookieが必要です。これを行うには、AppDelegateに次の命令を追加する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
      ...
}
于 2013-01-09T17:48:57.707 に答える
0

シミュレーターで試してみました

[_webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@ " https://www.youtube.com/embed/b22cH2sfVcc "]]];

そしてそれは動作します

YouTubeビデオの埋め込みsrcをWebビューに直接提供すると、機能します。

于 2013-07-01T12:16:42.073 に答える