0

我正在尝试使用AudioPlaybackAgentMicrosoft 在他们的示例中显示的小半径在示例中,我们有一个音频列表:

private static List<AudioTrack> _playList = new List<AudioTrack>
{
    new AudioTrack(new Uri("http://000.000.000.000/radio1.mp3", UriKind.Absolute),
    "Radio 1", null, null, null, null, EnabledPlayerControls.Pause),

    new AudioTrack(new Uri("http://000.000.000.000/radio2.mp3", UriKind.Absolute), 
    "Radio 2", null, null, null, null, EnabledPlayerControls.Pause)
};

在这里我会播放曲目:

private void PlayTrack(BackgroundAudioPlayer player)
{
    player.Track = _playList[VARIABLE];
}

在“变量”上,我想放置一个根据我在主项目中打开的页面而变化的变量。我该怎么做?我在没有退出的情况下尝试了很多东西。谢谢!!

4

2 回答 2

1

最终答案:如果您不需要在后台使用音频,您可以简单地使用媒体元素,但如果您想使用它,您不能使用公共变量在后台代理和主项目之间进行交互,您必须使用音频播放器的标记属性以存储和获取数据,如果这不起作用,您可以尝试 IsolatedStorge - Mutex。

于 2012-06-22T10:37:21.693 回答
0

如果要根据用户正在查看的页面播放音乐,则应使用 MediaElement 控件而不是音频代理。您可以将 MediaElement 的来源设置为您想要的任何内容。你可以这样做是 XAML 或代码

<MediaElement x:Name="MyMediaElement" Source="{Binding YourProperty}"/>

MyMediaElement.Source = new Uri(model.YourProperty);
MyMediaElement.Volume = 1;
MyMediaElement.Play();

您还可以从应用程序中设置 BackgroundAudioPlayer 的轨道

var track = new AudioTrack(
        new Uri(AudioUri),
        "Some song",   // can be an empty string if no song title
        "Some artist", // can be an empty string if no artist name
        null, // album
        null, // album art
        );

BackgroundAudioPlayer.Instance.Track = track;
BackgroundAudioPlayer.Instance.Play();
于 2012-06-21T14:24:53.950 回答