Exemple #1
0
        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));
        }
Exemple #2
0
 protected void ForcePlay()
 {
     IsPlaying = true;
     StartedPlaying?.Invoke();
     StartCoroutine(StartPlaying());
 }