我有一个音乐播放应用程序,我正在尝试创建一个重复功能。 如果我手动设置bool,每次都应该执行,但是如果我使用主页面上的按钮则没有。
MainPage.xaml.cs中
public static bool repeat
{
get {return AudioPlaybackAgent1.AudioPlayer.repeaton;}
set {repeat = value;}
}
private void RepeatButton_Click(object sender, RoutedEventArgs e)
{
if (repeat == false)
{
System.Diagnostics.Debug.WriteLine(AudioPlaybackAgent1.AudioPlayer.repeaton);
AudioPlaybackAgent1.AudioPlayer.repeaton = true;
var brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("/Images/repeaton.png", UriKind.Relative));
RepeatButton.Background = brush;
}
else if (repeat == true)
{
System.Diagnostics.Debug.WriteLine(AudioPlaybackAgent1.AudioPlayer.repeaton);
AudioPlaybackAgent1.AudioPlayer.repeaton = false;
var brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("/Images/repeatoff.png" UriKind.Relative));
RepeatButton.Background = brush;
}
}
Audio Player.cs
public static bool repeaton = false;
protected override void OnPlayStateChanged(BackgroundAudioPlayer player, AudioTrack track, PlayState playState)
{
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("liveTile".ToString()));
switch (playState)
{
case PlayState.TrackEnded:
if (repeaton == false)
{
if (player.Track != null)
MyPlayer.currentTrackNumber = FindTrack(player.Track);
player.Track = MyPlayer.GetNextTrack();
}
else if (repeaton == true)
{
if (player.Track != null)
MyPlayer.currentTrackNumber = FindTrack(player.Track);
player.Track = MyPlayer.GetRepeatTrack();
}
break;
调试器显示值已更改,但播放器忽略更改。 如果我手动设置repeaton工作正常,对于我的生活我不能让它工作,请帮助。
答案 0 :(得分:1)
这是错误的(似乎根本不应该工作):
public static bool repeat
{
get {return AudioPlaybackAgent1.AudioPlayer.repeaton;}
set {repeat = value;} //You set value to *this* property???
}
相反,您应set
使用相同的值,例如:
public static bool repeat
{
get {return AudioPlaybackAgent1.AudioPlayer.repeaton;}
set {AudioPlaybackAgent1.AudioPlayer.repeaton= value;}
}
和强>
如果您打算这样做,请在任何地方使用repeat
,不使用AudioPlaybackAgent1.AudioPlayer.repeaton
(或放弃repeat
并仅使用AudioPlaybackAgent1.AudioPlayer.repeaton
)。