Exemple #1
0
        public NextTrack GetNext(Track track, bool autoPlay)
        {
            var nextIndex = GetNextIndex(track);

            if ((nextIndex == -1) || ((nextIndex == 0) && !autoPlay))
            {
                return(NextTrack.None);
            }

            return(NextTrack.PlayTrack(_Tracks[nextIndex]));
        }
        /**
         * Keeps the given collider form colliding with this track and its adjacent tracks.
         *
         * Use this instead of Physics.IgnoreCollision or else a mesh regen will revert your change.
         *
         * Collisions are ignored until you unignore them. Ignoring a collider multiple times requires unignoring it
         * the same number of times to re-enable collisions.
         */
        public void IgnoreCollisionsWith(Collider other)
        {
            ignoredColliders.Add(other);
            __ignoreCollisions(other, true);

            if (NextTrack)
            {
                NextTrack.RefreshIgnoredColliders();
            }
            if (PrevTrack)
            {
                PrevTrack.RefreshIgnoredColliders();
            }
        }
        public virtual void ActionCallback(MediaSessionEventData eventData)
        {
            Console.WriteLine("MS_" + eventData.ActionType);
            if (string.Equals(eventData.ActionType, "Play", StringComparison.InvariantCultureIgnoreCase))
            {
                Play?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "Pause", StringComparison.InvariantCultureIgnoreCase))
            {
                Pause?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "Stop", StringComparison.InvariantCultureIgnoreCase))
            {
                Stop?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "SeekBackward", StringComparison.InvariantCultureIgnoreCase))
            {
                SeekBackward?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "SeekForward", StringComparison.InvariantCultureIgnoreCase))
            {
                SeekForward?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "SeekTo", StringComparison.InvariantCultureIgnoreCase))
            {
                SeekTo?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "PreviousTrack", StringComparison.InvariantCultureIgnoreCase))
            {
                PreviousTrack?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "NextTrack", StringComparison.InvariantCultureIgnoreCase))
            {
                NextTrack?.Invoke(this, eventData);
            }
            else if (string.Equals(eventData.ActionType, "SkipAd", StringComparison.InvariantCultureIgnoreCase))
            {
                SkipAd?.Invoke(this, eventData);
            }
            else
            {
                throw new ArgumentOutOfRangeException();
            }

            AnyEvent?.Invoke(this, eventData);
        }
        /**
         * Reverts IgnoreCollisionsWith for the given collider.
         */
        public void ResumeCollisionsWith(Collider other)
        {
            if (NextTrack)
            {
                NextTrack.DisableIgnoredColliders();
                NextTrack.RefreshIgnoredColliders();
            }

            if (PrevTrack)
            {
                PrevTrack.DisableIgnoredColliders();
                PrevTrack.RefreshIgnoredColliders();
            }

            __ignoreCollisions(other, false);
            ignoredColliders.Remove(other);
        }
Exemple #5
0
        public NextTrack GetNext(Track track, bool autoPlay)
        {
            if (_Tracks.Count == 0)
            {
                return(NextTrack.None);
            }

            var tracks    = _Tracks.Where(t => !_PlayedTracks.Contains(t)).ToList();
            var nextTrack = GetNext(tracks);

            if (nextTrack != null)
            {
                return(NextTrack.PlayTrack(nextTrack));
            }

            _PlayedTracks.Clear();
            return(autoPlay ? NextTrack.PlayTrack(GetFirst()) : NextTrack.None);
        }
    IEnumerator PlayNextTrack(NextTrack playThisNext)
    {
        yield return(new WaitForSeconds(source.clip.length));

        playThisNext();
    }
Exemple #7
0
        public void PressNextButton()
        {
            Command cmd = new NextTrack(player);

            cmd.execute();
        }