J'essaie de jouer une vidéo YouTube à l'aide de YouTube Embedded Player dans mon application iPad. Je souhaite que dès que l'utilisateur clique sur la vignette vidéo, la vidéo doit automatiquement être chargée en plein écran sur la commutation en mode paysage dans iPad. Actuellement, l'utilisateur doit cliquer sur le bouton FullScreen pour lire la vidéo en mode plein écran. Je souhaite le même effet que vous voyez lorsque nous jouons la vidéo à l'aide de l'application YouTube par défaut qui est livrée avec iPad.
Ceci est le code que j'utilise pour jouer votre vidéo de tube sur iPad. P>
embedHTML = @"<object width=\"640\" height=\"390\"> <param name=\"movie\"value=\"http://www.youtube.com/v/IYX_Ql-3U10&fs=1\"> <param name=\"allowFullScreen\" value=\"true\"></param> <param name=\"allowScriptAccess\" value=\"always\"></param> <embed id=\"yt\" src=\"http://www.youtube.com/v/youtube_video_id&fs=1\" type=\"application/x-shockwave-flash\" position=\"fixed\" allowfullscreen=\"true\" allowScriptAccess=\"always\" width=\"640\" height=\"390\"></embed></object>";
4 Réponses :
Vous ne pouvez pas, il n'est pas autorisé :) p>
Vous voulez dire que nous ne pouvons pas avoir le même effet dans notre application iPad que nous voyons lorsque nous jouons une vidéo YouTube sur iPad. Veuillez poster une URL de la documentation qui confirme votre réponse.
Si cela n'est pas possible, comment l'application YouTube fournie-elle avec iPad active cette fonctionnalité.
Donc, ils devaient aussi avoir adopté une méthode pour cela n'est-ce pas.
Oui, la "méthode" est une API privée et n'est pas documentée n'importe où, il n'y a donc pas de moyen de savoir comment ils le font.
@shruti L'application YouTube n'est pas le même type d'application que vous construisez. Essayez de soumettre votre CV à Apple et / ou Google.
Que voulez-vous dire que cela n'est pas autorisé à jouer une vidéo de YouTube FullScreen? Vous pouvez le faire avec des appareils Android (téléphone ou tablette), mais vous définissez qu'il n'est pas autorisé avec iPad? Quel est le problème avec ce monde?
Donc, le mode FullScreen fonctionne uniquement avec iPhone (YouTube Iframe API + webview) ...
En fait, il est possible d'aller en plein écran YouTube sur iPad: let configuration = wkwebviewconfiguration () configuration.AllowsinlineMediAplayBack = false code>
On dirait qu'il n'y a pas de solution simple. Si mon client le voudra (je saurai dans quelques jours :-)) J'essaierai probablement d'ouvrir un nouveau contrôleur avec webview qui couvre l'ensemble de l'écran, puis de l'autoplay comme dans ce poste: Comment faire de la vidéo YouTube commence à jouer automatiquement à l'intérieur UiWebView P>
J'ai pu accéder à cette fonctionnalité à partir d'une sous-vision intitulée FigpluginView em> dans le WebView de YouTube Player, à l'aide de l'aide iOS YouTube IOS-YouTube-Player-Helper .
FigpluginView Classe Vendule de vidage Créer une en-tête de classe UIView personnalisée qui expose la méthode suivante: P> - (void)presentYoutubeVideo {
if ([self.view.subviews containsObject:_playerView]){
[_playerView removeFromSuperview];
}
CGRect playerFrame = CGRectMake(0, 0, 0, 0);
_playerView = [[YTPlayerView alloc]initWithFrame:playerFrame];
_playerView.delegate = self;
[_playerView.webView setAllowsInlineMediaPlayback: NO];
[self.view addSubview:_playerView];
[self.playerView loadWithVideoId:@"YouTubeVideoID" playerVars:@{@"showinfo":@0,@"modestbranding":@1,@"autoplay":@1,@"playsinline":@0}];
}
-(void)playerViewDidBecomeReady:(YTPlayerView *)playerView {
[_playerView playVideo];
}
-(void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state {
//stop activity indicator
if (state == kYTPlayerStateBuffering) {
//start activity indicator
}
if (state == kYTPlayerStatePlaying) {
WMFigPluginView *figPluginView = (WMFigPluginView*)[self findFigPluginView:_playerView.webView];
[figPluginView scriptEnterFullScreen];
}
}
- (UIView *)findFigPluginView:(UIView *)view {
for (__unsafe_unretained UIView *subview in view.subviews) {
if ([NSStringFromClass(subview.class) hasSuffix:@"FigPluginView"]) {
return subview;
} else if (subview.subviews.count > 0) {
return [self findFigPluginView:subview];
}
}
return nil;
}
Lien de la référence de vidage de la classe FigpluginView est cassé, n'a pas vu le référentiel en rapport avec celui-ci
En ce qui concerne les auteurs des autres réponses, il est tout à fait possible de le faire en utilisant UiWebViews dans iOS et sans exploiter des API privées. Voici une méthode assez simple pour le faire.
- (void)playYoutubeVideo:(NSString *)videoId { UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; webView.center = self.view.center; //Technically not needed, I've found it looks better with this added (when the video is done playing it looks better while being minimized) webView.mediaPlaybackRequiresUserAction = NO; [self.view addSubview:webView]; NSString *youTubeVideoHTML = [NSString stringWithFormat:@"<html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = 'http://www.youtube.com/player_api'; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width:'768', height:'1024', videoId:'%@', events: { 'onReady': onPlayerReady } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>", videoId]; [webView loadHTMLString:youTubeVideoHTML baseURL: [NSBundle mainBundle].bundleURL]; }
Avez-vous trouvé la réponse à votre question, si oui pourriez-vous le partager. Je suis trop tente d'utiliser une vidéo de YouTube de mon application.