我正在尝试使用AudioPlaybackAgent
作为微软在Samples中展示的小半径。在示例中,我们有一个adudios列表:
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];
}
On“VARIABLE”我想根据我在主项目中打开的页面放置一个变量。我怎么能这样做?我没有退出就尝试了很多东西。 Thnks !!
答案 0 :(得分:1)
最后的答案:如果您不需要在后台使用音频,您可以简单地使用媒体元素,但如果您想使用它,您不能使用公共变量在后台代理和主项目之间进行交互,您必须使用音频播放器的Tag属性来存储和获取数据,如果这不起作用,你可以试试IsolatedStorge - Mutex。
答案 1 :(得分: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();