void ThreadPlay(int times = 1) { var args = new BowlPlayerEventArgs(times); var bowls = times.Times().Select(i => Platform.CreateBowlSound(BowlSoundPath)).ToArray(); Platform.RunOnMainThread(() => StartedPlaying.Raise(this, args)); foreach (var bowl in bowls) { bowl.Play(Platform.Preferences.BowlVolumePercentage); Platform.ThreadSleep(TimeBetweenBowls); } Platform.ThreadSleep(AbstractBowlSound.SoundDuration); foreach (var bowl in bowls) { bowl.Dispose(); } Platform.RunOnMainThread(() => StoppedPlaying.Raise(this, args)); }
protected void ForcePlay() { IsPlaying = true; StartedPlaying?.Invoke(); StartCoroutine(StartPlaying()); }