在Windows手机中播放来自RSS feed的视频

时间:2014-06-25 05:07:37

标签: windows-phone-8

我已经解析了RSS提要http://www.teluguone.com/videosongs/videoSongsXml.php?cat_id=6并显示在列表框中。当我自动点击某首歌时,它应该被导航并开始播放。但是当我点击一首歌时它会导航到其他页面但不会play.It正在显示"发生错误请再试一次#34;。我不明白问题所在。我写了以下代码。没有错误和警告正在上升。

请帮助我。我从很多天开始尝试这个。

Maipage.Xaml:

<phone:PhoneApplicationPage
    x:Class="videosongs.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:delay="clr-namespace:Delay;assembly=PhonePerformance"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True" Loaded="PhoneApplicationPage_Loaded">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="ApplicationTitle" Text="Teluguone" Style="{StaticResource PhoneTextNormalStyle}"/>
        <TextBlock x:Name="PageTitle" Text="Videosongs" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ListBox x:Name="songsList"
            SelectionChanged="songsList_SelectionChanged">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Height="130">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Image delay:LowProfileImageLoader.UriSource="{Binding songpic}" 
                               Grid.Column="0" 
                               Width="97" 
                               Height="125" 
                               VerticalAlignment="Center" 
                               HorizontalAlignment="Center" 
                               Margin="6"/>
                        <StackPanel Margin="10,15,0,0"
                                    Grid.Column="1"
                                    Height="60"
                                    Orientation="Horizontal" 
                                    VerticalAlignment="Top">
                            <TextBlock Text="{Binding songname}" 
                                       FontSize="30" />

                        </StackPanel>
                        <StackPanel Margin="0,50,0,0"
                                    Grid.Column="1"
                                    VerticalAlignment="Center">
                            <TextBlock Grid.Column="1" 
                                   Text="{Binding songdescr}" 
                                   Style='{StaticResource PhoneTextSubtleStyle}'
                                   />
                            <TextBlock Grid.Column="1" 
                                   Text="{Binding songdate}" 
                                   Style='{StaticResource PhoneTextSubtleStyle}'
                                   />
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <ProgressBar x:Name="progress" Foreground="White" />
    </Grid>
    </Grid>

Mainpage.xaml.cs:
     public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
             public MainPage()
                {
            InitializeComponent();

        }  

        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            // is there network connection available
            if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
        {
            MessageBox.Show("No network connection available!");
            return;
        }


        // start loading XML-data
        WebClient downloader = new WebClient();
        Uri uri = new Uri("http://www.teluguone.com/videosongs/videoSongsXml.php?cat_id=6", UriKind.Absolute);
        downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(VideosongsDownloaded);
        downloader.DownloadStringAsync(uri);

    }
   void VideosongsDownloaded(object sender, DownloadStringCompletedEventArgs e)
    {
        try
        {
            if (e.Result == null || e.Error != null)
            {
                MessageBox.Show("There was an error downloading the XML-file!");
            }
            else
            {
                // Deserialize if download succeeds
                XDocument document = XDocument.Parse(e.Result);
                XmlSerializer serializer = new XmlSerializer(typeof(Videosongs));
                Videosongs videosongs = (Videosongs)serializer.Deserialize(document.CreateReader());
                songsList.ItemsSource = videosongs.Collection;
    }
        }
        catch (Exception ex)
        {
            //MessageBox.Show(ex.InnerException.Message);
            MessageBox.Show(ex.ToString());
        }
    }

    // selection in SongsdetailsList is changed
    private void songsList_SelectionChanged(object sender, SelectionChangedEventArgs e)

    {
        ListBox listBox = sender as ListBox;

        if (listBox != null && listBox.SelectedItem != null)
        {
             Songsdetails song = (Songsdetails)listBox.SelectedItem;
         System.Diagnostics.Debug.WriteLine(song);
         NavigationService.Navigate(new Uri("/Videopage.xaml?songsongcode=" + song.songcode , UriKind.Relative));
        }
    }

   }
}

Songsdetails.cs:     公共课Songsdetails

    {
        [XmlElement("songname")]
    public string songname { get; set; }

    [XmlElement("songpic")]
    public string songpic { get; set; }

    [XmlElement("songcode")]
    public string songcode { get; set; }

    [XmlElement("songdescr")]
    public string songdescr { get; set; }

    [XmlElement("songtitletags")]
    public string songtitletags { get; set; }

    [XmlElement("songmetatags")]
    public string songmetatags { get; set; }

    [XmlElement("songmetadesc")]
    public string songmetadesc { get; set; }

    [XmlElement("songdate")]
    public string songdate { get; set; }

    [XmlElement("songurl")]
    public string songurl { get; set; }

Videosongs.cs:

 [XmlRoot("videosongs")]
    public class Videosongs
    {
        //[XmlElement("publisher")]
        //public string publisher { get; set; }

        //[XmlElement("publisherurl")]
        //public string publisherUrl { get; set; }

        [XmlElement("songsdetails")]
        public ObservableCollection<Songsdetails> Collection { get; set; }

Videopage.Xaml:

<phone:PhoneApplicationPage 
x:Class="videosongs.Videopage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:extended="clr-namespace:MyToolkit.Controls;assembly=MyToolkit.Extended"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" 
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait"  Orientation="Landscape" 
shell:SystemTray.IsVisible="False">

<StackPanel  VerticalAlignment="Top" Height="600" Margin="0,0,0,0">
    <TextBlock x:Name="title" TextWrapping="Wrap"  VerticalAlignment="Top" Height="40"></TextBlock>
    <phone:WebBrowser x:Name="webBrowser" Height="411"  IsScriptEnabled="True" Margin="10,0,78,0" />
    </StackPanel>

Videopage.Xaml.cs:

namespace videosongs
{
 public partial class Videopage : PhoneApplicationPage
    {
        // Constructor
        public Videopage()
        {
            InitializeComponent();
        }
         // When page is navigated to set data context to selected item in list
         protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (!NetworkInterface.GetIsNetworkAvailable())
           {
                MessageBox.Show("An error has occurred! Please verify your internet connection.");
                NavigationService.GoBack();
            }
            else
             {
            string video = "http://www.youtube.com/embed/+getsongcode()";
            System.Diagnostics.Debug.WriteLine(video);
             this.webBrowser.Navigate(new Uri(video));

            }
        }

        }

任何人请帮助。非常感谢。

非常感谢提前。

0 个答案:

没有答案