0

Je construction d'une application sur youtube, je google youtube apis v3 et MyToolkit code suivant:Comment lire une vidéo sur youtube en utilisant MyToolkit dans windows phone 8 silverlight

<Grid x:Name="LayoutRoot" Background="Transparent"> 
     <player:MediaPlayer x:Name="player" AutoPlay="True" /> 
    </Grid> 
Code

derrière:

protected async override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    try 
    { 
     if (NetworkInterface.GetIsNetworkAvailable()) 
     { 
      string videoId = string.Empty; 
      if (NavigationContext.QueryString.TryGetValue("videoId", out videoId)) 
      { 
       //Get The Video Uri and set it as a player source 
       var url = await MyToolkit.Multimedia.YouTube.GetVideoUriAsync(videoId, MyToolkit.Multimedia.YouTubeQuality.Quality480P); 

       if (url != null) 
        player.Source = url.Uri; 

        // MessageBox.Show(url.Uri.ToString()); 
        player.Play(); 


      } 
     } 
     else 
     { 
      MessageBox.Show("You're not connected to Internet!"); 
      NavigationService.GoBack(); 
     } 
    } 
    catch (Exception ex) { MessageBox.Show(ex.Message); } 

    base.OnNavigatedTo(e); 
} 

Mais lorsque l'application fonctionne Je ne peux pas lire la vidéo sélectionnée, comment puis-je corriger cette erreur?

+2

Avez-vous essayé de déplacer votre code derrière un clic de clic comme l'indique l'exemple? (https://github.com/MyToolkit/MyToolkit/wiki/YouTube) Juste pour être sûr que cela fonctionne réellement. Et si cela fonctionne, je suppose que votre exemple ne fonctionne pas parce que vous gérez tout dans OnNavigatedTo. Peut-être préférable d'attendre que les contrôles soient chargés. Déplacez donc le code sur Page> loaded ou player> loaded – Depechie

Répondre

0

Êtes-vous en utilisant le droit videoId, vous pouvez faire quelque chose comme ceci:

public Youtube() 
{ 
    InitializeComponent(); 
    Loaded += Youtube_Loaded; 
} 

async void Youtube_Loaded(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     string videoId = "iqjMRdev0FI"; 
     var url = await YouTube.GetVideoUriAsync(videoId, YouTubeQuality.Quality480P); 
     player.Source = url.Uri; 
    } 
    catch (Exception ex) 
    { 
     System.Diagnostics.Debug.WriteLine(ex.Message); 
    } 

} 

Hope this helps.