private async void ButtonOnPlayStateChanged(
SoundPlayButton activeButton, SoundPlayState newState)
{
lock (_lockObject)
{
if (_isLoading) return;
_isLoading = true;
}
if (activeButton == null) return;
_activeButton = activeButton;
var notification = new SoundPlayStateChangedNotification
{
NewSound = (Sound)activeButton.DataContext,
NewState = newState
};
if (newState == SoundPlayState.Playing)
{
foreach (SoundPlayButton button in _buttons)
{
if (button != activeButton &&
button.State == SoundPlayState.Playing)
{
button.State = SoundPlayState.Stopped;
MediaElementSound.Stop();
}
}
await SetSound(activeButton.Sound);
Play();
}
else
{
activeButton.State = SoundPlayState.Paused;
Stop();
}
//if (Command != null)
// Command.Execute(notification);
_isLoading = false;
}