多くの研究の後、私はこの質問に対する答えを見つけられなかったので、YTPlayerView.mファイルを掘り下げてtouchイベントがどのように処理されるかを見て、これを行う2つの方法があることがわかりました:
1-はYTPlayerViewは、WebViewのとのオーバーライド含まれています。これはURLスキームをチェックし、完全なコードは、適切なアクションをトリガするようにされている
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
を
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
if ([request.URL.host isEqual: self.originURL.host]) {
return YES;
} else if ([request.URL.scheme isEqual:@"ytplayer"]) {
[self notifyDelegateOfYouTubeCallbackUrl:request.URL];
return NO;
} else if ([request.URL.scheme isEqual: @"http"] || [request.URL.scheme isEqual:@"https"]) {
return [self handleHttpNavigationToUrl:request.URL];
}
return YES;
}
私の場合この関数handleHttpNavigationToUrlは、ビデオがアプリケーションまたはYouTubeアプリケーションで開く必要があるかどうかを示すboolを返します。 私はこれらの行をコメントアウトして、アプリケーション上でビデオを開き、すべてが正常です。
[[UIApplication sharedApplication] openURL:url];
return NO;
これは、クイックフィックスではなく、私が知っている良いものですが、私の場合は、2番目のソリューションは、しかしはるかに優れている選択の余地がなかったです。
2 -問題はそれほど代わりに埋め込みURLを使用してビデオをロードするための他の方法を使用しようとしますが、埋め込みURLを使用しているかのように、この問題は発生しません、最初の場所でユーチューブのURLにある
HTTP(S):フォーマットである?//www.youtube.com/embed/ [動画ID] [パラメータ]
これだけloadVideoByURLおよび使用を使用しようとの代わりに埋め込みURL loadWithVideoId。 私はこれが役立つことを願っています。