public void PlayAudio(string filename, AudioType type, int channel, float volume, float fadeintime = 0) { float startvolume = volume; if (fadeintime > 0f) { fadeintime /= 1000f; startvolume = 0f; } AudioLayer audioLayer = channelDictionary[GetChannelByTypeChannel(type, channel)]; if (audioLayer.IsPlaying()) { audioLayer.StopAudio(); } bool loop = type == AudioType.BGM; if (type == AudioType.BGM) { if (currentAudio[AudioType.BGM].ContainsKey(channel)) { currentAudio[AudioType.BGM].Remove(channel); } currentAudio[AudioType.BGM].Add(channel, new AudioInfo(volume, filename)); } audioLayer.PlayAudio(filename, type, startvolume, loop); if (fadeintime > 0.05f) { audioLayer.StartVolumeFade(volume, fadeintime); } }
public void ChangeVolumeOfBGM(int channel, float volume, float time) { int channelByTypeChannel = GetChannelByTypeChannel(AudioType.BGM, channel); float time2 = time / 1000f; AudioLayer audioLayer = channelDictionary[channelByTypeChannel]; if (currentAudio[AudioType.BGM].ContainsKey(channel)) { currentAudio[AudioType.BGM][channel].Volume = volume; } else { Debug.LogWarning("ChangeVolumeOfBGM could not find existing currentAudio for channel!"); } audioLayer.StartVolumeFade(volume, time2); }