public static void play(Uri uri, SoundType type = SoundType.SoundEffect, SoundLoop loop = SoundLoop.None) { MediaPlayer player = new MediaPlayer(); player.Open(uri); play(player, type, loop); }
public void PlayLoop(SoundLoop sound, AudioSource source, float volumeFactor = 1) { SoundLoopClip c = audioFiles.SoundLoopToClip(sound); source.clip = c.Clip; source.volume = c.Volume * volumeFactor * globalVolume; source.Play(); }
protected override void OnProcessEntities(GameTime gameTime, IEnumerable <int> entityIdCollection) { foreach (int liveId in entityIdCollection) { SoundLoop soundLoop = soundLoopComponents.GetComponentFor(liveId); UpdateSound(liveId, soundLoop); } }
protected override void OnEntityAdded(Entity entity, int liveId) { base.OnEntityAdded(entity, liveId); SoundLoop soundLoop = soundLoopComponents.GetComponentFor(entity); soundEffectInstance[liveId] = soundEffects[soundLoop.CueNameId].CreateInstance(); soundEffectInstance[liveId].IsLooped = true; // REVIEW: support non-looped. UpdateSound(liveId, soundLoop); soundEffectInstance[liveId].Play(); }
public void SetLoopVolume(SoundLoop sound, float volume) { AudioSource source = loopSources.FirstOrDefault <AudioSource>(src => AudioManager.Instance.IsSameSoundLoop(sound, src.clip)); if (!source) { Debug.LogWarning("This AudioBox do not play the sound : " + sound + ", so they cannot change volume"); return; } AudioManager.Instance.SetLoopVolume(sound, source, volume); }
public void StopLoop(SoundLoop sound) { AudioSource source = loopSources.FirstOrDefault <AudioSource>(src => AudioManager.Instance.IsSameSoundLoop(sound, src.clip)); if (!source) { Debug.LogWarning("This AudioBox do not play the sound : " + sound + ", so they cannot be stopped"); return; } if (source.isPlaying) { source.Stop(); } source.clip = null; }
public SoundLoopClip SoundLoopToClip(SoundLoop sound) { switch (sound) { case SoundLoop.DayMusic: return(dayMusic); case SoundLoop.AmbianceDay: return(ambianceDay); case SoundLoop.AmbianceNight: return(ambianceNight); case SoundLoop.AmbianceRain: return(ambianceRain); case SoundLoop.AmbianceSnow: return(ambianceSnow); default: Debug.LogError("SoundLoopClip : " + sound + " was not found!"); return(null); } }
public void StopSoundLoop(SoundLoop sound) { AudioClip clip = audioFiles.GetLoopClip(sound); AudioSource findSource = null; foreach (AudioSource source in musicSources) { if (source.clip == clip) { findSource = source; break; } } if (findSource) { findSource.Stop(); musicSources.Remove(findSource); Destroy(findSource); } }
public void PlaySoundLoop(SoundLoop sound, float volume = 1f, bool loop = true) { AudioClip clip = audioFiles.GetLoopClip(sound); foreach (AudioSource source in musicSources) { if (source.clip == clip) { return; } } AudioSource musicSource = gameObject.AddComponent <AudioSource>(); musicSource.playOnAwake = false; musicSource.volume = volume = musicGlobalVolume; musicSource.loop = loop; musicSource.clip = clip; musicSource.Play(); musicSources.Add(musicSource); }
public void PlayLoop(SoundLoop sound, float volumeFactor = 1) { AudioSource source = null; for (int i = 0; i < nbLoopTrack; ++i) { AudioSource src = loopSources[i]; if (!src.isPlaying) { source = src; break; } } if (!source) { Debug.LogWarning("This AudioBox do not have enough LoopTrack, " + sound + " cannot be played"); return; } AudioManager.Instance.PlayLoop(sound, source); }
public AudioClip GetLoopClip(SoundLoop musicFile) { switch (musicFile) { //"Environment case SoundLoop.PeopleBackround: return(peopleBackground); case SoundLoop.HumBackground: return(humBackground); case SoundLoop.TrainMovement: return(trainMovement); case SoundLoop.TrainCloseDoorWarning: return(trainCloseDoorWarning); case SoundLoop.MainMenu: return(mainMenuMusic); case SoundLoop.Level: return(levelMusic); case SoundLoop.Jt: return(jtMusic); } return(null); }
public static void play(MediaPlayer player, SoundType type = SoundType.SoundEffect, SoundLoop loop = SoundLoop.None) { SoundConfiguration configuration = new SoundConfiguration(type, loop); currentMediaPlayers[player] = configuration; switch (type) { //todo make music transition flow correctly case SoundType.BattleMusic: player.Volume = PlayBattleTheme ? MusicVolume : 0; break; case SoundType.MenuMusic: player.Volume = PlayBattleTheme ? 0 : MusicVolume; break; case SoundType.SoundEffect: player.Volume = SoundVolume; break; } player.MediaEnded += on_player_end; player.Play(); }
private void UpdateSound(int liveId, SoundLoop soundLoop) { soundEffectInstance[liveId].Volume = soundLoop.Volume; soundEffectInstance[liveId].Pitch = soundLoop.Pitch; }
public SoundConfiguration(SoundType soundType, SoundLoop soundLoop) { Type = soundType; Loop = soundLoop; }
private IEnumerator StopLoopAfterTime(SoundLoop sound, float time) { yield return(new WaitForSeconds(time)); StopLoop(sound); }
public void SetLoopVolume(SoundLoop sound, AudioSource source, float volume) { SoundLoopClip c = audioFiles.SoundLoopToClip(sound); source.volume = c.Volume * volume * globalVolume; }
public void Start() { soundLoop = GetComponentInParent <SoundLoop>(); }
public bool IsSameSoundLoop(SoundLoop sound, AudioClip clip) { return(audioFiles.SoundLoopToClip(sound).Clip == clip); }
public void PlayLoopForTime(SoundLoop sound, float time, float volumeFactor = 1) { PlayLoop(sound, volumeFactor); StartCoroutine(StopLoopAfterTime(sound, time)); }
public static void play(string uriString, SoundType type = SoundType.SoundEffect, SoundLoop loop = SoundLoop.None) { play(new Uri(uriString, UriKind.Relative), type, loop); }