如何将List <audiotrack>从类传递到类AudioPlayer </audiotrack>

时间:2011-10-07 21:26:31

标签: c# windows-phone-7 audio background audio-player

该网站是Windows Phone 7的Microsoft软件示例,即:Background Audio Player SampleSample 在此示例中,播放列表在AudioPlayer类中形成为

列表
    private static List<AudioTrack> _playList = new List<AudioTrack>
{
    new AudioTrack(new Uri("Kalimba.mp3", UriKind.Relative), 
                    "Kalimba", 
                    "Mr. Scruff", 
                    "Ninja Tuna", 
                    null),

    new AudioTrack(new Uri("Maid with the Flaxen Hair.mp3", UriKind.Relative), 
                    "Maid with the Flaxen Hair", 
                    "Richard Stoltzman", 
                    "Fine Music, Vol. 1", 
                    null),

    new AudioTrack(new Uri("Sleep Away.mp3", UriKind.Relative), 
                    "Sleep Away", 
                    "Bob Acri", 
                    "Bob Acri", 
                    null),

    // A remote URI
    new AudioTrack(new Uri("http://traffic.libsyn.com/wpradio/WPRadio_29.mp3", UriKind.Absolute), 
                    "Episode 29", 
                    "Windows Phone Radio", 
                    "Windows Phone Radio Podcast", 
                    null)
};

我有一个问题,例如,如果我在MainPage.cs中创建它:

 private static List<AudioTrack> playList2 = new List<AudioTrack>
{
    new AudioTrack(new Uri("http://myserver.com/tracks/track1.mp3", UriKind.Absolute), 
                    "MyTrack1", 
                    "Windows Phone Radio", 
                    "Windows Phone Radio Podcast", 
                    null),

    new AudioTrack(new Uri("http://myserver.com/tracks/track2.mp3", UriKind.Absolute), 
                    "MyTrack2", 
                    "Windows Phone Radio", 
                    "Windows Phone Radio Podcast", 
                    null),

    new AudioTrack(new Uri("http://myserver.com/tracks/track3.mp3", UriKind.Absolute), 
                    "MyTrack3", 
                    "Windows Phone Radio", 
                    "Windows Phone Radio Podcast", 
                    null)
};

这将是MainPage类中几个Internet广播的链接,是否可以在AudioPlayer中传输。建议做什么,在哪里挖掘。帮帮我

2 个答案:

答案 0 :(得分:8)

将信息写入IsolatedStorage或客户端应用程序中的数据库,然后从AudioPlayer代理程序中读取它。

澄清: 无论您是在播放本地文件还是流文件,您都可以通过将该信息写入DB表或IsolatedStorage中的文件来与代理进行通信。假设您有一个名为Playlist的表的数据库。

从您的应用或MainPage.xaml.cs(或viewmodel)将数据写入播放列表表格。然后发出BackgroundAudioPlayer.Instance.Play();

然后,在播放列表中读取的AudioPlayerAgent中获取数据以创建AudioTrack

更新: 最初我使用IsolatedStorage这个并且它工作,现在我使用SterlingDB。这很好用,因为我可以在我的客户端应用程序中将播放列表记录写入SterlingDB,并在代理中一次读取它们,因为currentTrackIndex被操作,所有这些都无需创建SterlingDB索引。

答案 1 :(得分:0)

适用于Windows Phone 8

BackgroundAudioPlayer.Instance.Track = new AudioTrack(new 
         Uri("http://traffic.libsyn.com/wpradio/WPRadio_29.mp3", UriKind.Absolute), 
        "title", "artist", "album", new Uri("albumArtUrl", UriKind.RelativeOrAbsolute));
相关问题