2010-11-13 5 views
5

Je voudrais lancer directement sur le lecteur YouTube sur Windows Phone 7.Comment lancer une URL YouTube sur Windows Phone 7

J'ai essayé d'utiliser WebBrowserTask et de donner une URL YouTube, il ouvre le navigateur et me amène à une page avec une vignette de la vidéo YouTube, je dois cliquer sur la vignette avant la lecture de la vidéo.

J'aime sauter le clic supplémentaire. J'aime l'utilisateur pour cliquer sur un bouton dans mon application, et il devrait lire la vidéo directement. Y a-t-il un moyen de le faire?

Répondre

0

N ° Mabe dans la prochaine version de OS sera des sélecteurs et des déjeuners personnalisés.

0

Pour afficher une vidéo sur YouTube, vous devez disposer du lecteur vidéo pour YouTube. Sinon, vous devrez écrire un décodeur personnalisé qui recevra le flux YouTube et l'afficher dans un MediaElement.

0

Comme vous l'avez découvert, cela n'est actuellement pas possible.

Il n'existe actuellement aucun moyen de lancer une autre application, sauf en utilisant un Launcher ou un Chooser.

Sur le site YouTube, des vidéos individuelles peuvent être configurées pour la lecture automatique ou non. Je ne suis pas au courant d'un moyen de contourner cela.

Cependant, sur le téléphone c'est différent. YouTube utilise Flash pour lire des vidéos, mais Flash n'est actuellement pas pris en charge sur le téléphone. Les vidéos YouTube ne peuvent être lues que si l'application YouTube est installée. Lorsque vous ouvrez le site YouTube avec le webbrowsertask, l'utilisateur doit cliquer sur l'image pour lancer le lecteur.
Si les pages Web pouvaient lancer des applications sans nécessiter d'intervention de la part de l'utilisateur, cela pourrait être un énorme problème de sécurité.

N.B. L'application YouTube dispose de privilèges spéciaux, généralement non disponibles, pour pouvoir être lancée comme elle l'est actuellement.

8

Une fois que vous avez l'application YouTube, à partir de votre application, vous pouvez démarrer le WebBrowserTask et faire le follwing:

 Regex Youtube = new Regex("youtu(?:\\.be|be\\.com)/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)");    

     Match youtubeMatch = Youtube.Match(YOUTUBE_VIDEO_URL);   

     string id = string.Empty; 

     if (youtubeMatch.Success) 
      id = youtubeMatch.Groups[1].Value; 

     WebBrowserTask webBrowserTask = new WebBrowserTask(); 


     webBrowserTask.URL = "vnd.youtube:"+ id +"?vndapp=youtube_mobile"; 
     webBrowserTask.Show(); 

Cela devrait lancer le navigateur, puis lancer automatiquement l'application YouTube. À votre santé!

+0

Merci! Cela fonctionne pour moi, y at-il un moyen de revenir à mon application une fois la vidéo terminée? –

+1

Pour autant que je sache, pas encore. La méthode décrite actuellement est juste une solution de contournement, et l'utilisateur doit appuyer deux fois sur le bouton de retour pour revenir à votre application. Malheureusement, à ce stade, nous ne pouvons pas surveiller, ou avoir n'importe quel type de méthode de délégué qui indiquerait que le film a cessé de jouer. – EdGs

+1

La propriété d'URL est obsolète et l'URI ne prend que l'URI absolu que faire dans ce cas? –

1

Essayez d'utiliser suivant l'échantillon;

WebBrowserTask webBrowserTask = new WebBrowserTask(); 
    webBrowserTask.Uri = new Uri("http://www.youtube.com/embed/V3oJR5IAMxM?autoplay=1"); 
    webBrowserTask.Show(); 

Ceci devrait ouvrir la vidéo directement, mais je pense que vous devrez encore double-cliquer pour revenir en arrière.

+0

Welldone Teoman, cela a fonctionné pour moi. – jade

1

Il existe une solution pour cela maintenant. Vous pouvez utiliser le protocole vnd.youtube pour lancer l'application YouTube à partir de Microsoft et la lire.

C#

Windows.System.Launcher.LaunchUriAsync(

new System.Uri("vnd.youtube:9bZkp7q19f0") 

); 

Malheureusement méthode Launcher.LaunchUriAsync fonctionne uniquement avec les appareils Windows Phone 8 et au-delà.