0

Я здание приложение YouTube, я использовал YouTube или Google Apis v3 и mytoolkit в следующем коде:Как воспроизвести видео на YouTube с помощью mytoolkit в Windows Phone 8 Silverlight

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

код позади:

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); 
} 

Но , когда приложение запускается, я не могу воспроизвести выбранное видео, как я могу исправить эту ошибку?

+2

Вы пытались переместить код за кнопкой, как показано в примере? (https://github.com/MyToolkit/MyToolkit/wiki/YouTube) Просто убедитесь, что он действительно работает. И если это сработает, я думаю, что ваш пример не потому, что вы обрабатываете все в OnNavigatedTo. Может быть, лучше подождать, пока элементы управления не будут загружены. Поэтому переместите код в страницу> загруженный или проигрываемый> загруженный – Depechie

ответ

0

Вы используете правильный VideoID, вы можете сделать что-то вроде этого:

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); 
    } 

} 

Надеется, что это помогает.