private static void LogoAnimationPrefix() { if (TrackConfigManager.trackConfig == null) { return; } Dictionary <string, TrackConfig> trackList = TrackConfigManager.trackConfig.trackList; if (trackList == null || !trackList.ContainsKey(TitleScreenTrack)) { return; } TrackConfig track = trackList[TitleScreenTrack]; if (track == null || string.IsNullOrEmpty(track.filePath)) { return; } AudioClip clip = TrackLoadingUtils.LoadMusicTrackNow(track); if (clip != null && AudioHandler.audioHandler != null) { AudioHandler.audioHandler.musicTrackRealList[23] = clip; AudioHandler.audioHandler.gc.sessionDataBig.musicTrackDic[TitleScreenTrack] = clip; } }
private static void MusicLoad(AudioHandler audioHandler) { foreach ((string key, TrackConfig config) in trackAdditionQueue) { TrackConfigManager.instance.StartCoroutine( TrackLoadingUtils.LoadMusicTrack( config, clip => OnTrackLoaded(audioHandler, key, clip)) ); } trackAdditionQueue.Clear(); foreach ((string key, TrackConfig config) in trackChangedQueue) { TrackConfigManager.instance.StartCoroutine( TrackLoadingUtils.LoadMusicTrack( config, clip => OnTrackLoaded(audioHandler, key, clip)) ); } trackChangedQueue.Clear(); foreach ((string trackName, AudioClip clip) in clipAdditionQueue) { OnTrackLoaded(audioHandler, trackName, clip); } clipAdditionQueue.Clear(); foreach (CustomMusicLoadSpec customMusicLoadSpec in customMusicAdditionQueue) { Debug.Log("Starting load for new custom track: " + customMusicLoadSpec); Action <CustomMusicLoadSpec, AudioClip> previousCallback = customMusicLoadSpec.callback; customMusicLoadSpec.callback = (loadSpec, clip) => { previousCallback?.Invoke(loadSpec, clip); OnTrackLoaded(audioHandler, loadSpec.GetDisplayName(), clip); }; TrackConfigManager.instance.StartCoroutine(TrackLoadingUtils.LoadMusicTrack(customMusicLoadSpec)); } customMusicAdditionQueue.Clear(); foreach (CustomMusicLoadSpec customMusicLoadSpec in customMusicChangedQueue) { Debug.Log("Starting load for changed custom track: " + customMusicLoadSpec); Action <CustomMusicLoadSpec, AudioClip> previousCallback = customMusicLoadSpec.callback; customMusicLoadSpec.callback = (loadSpec, clip) => { previousCallback?.Invoke(loadSpec, clip); OnTrackLoaded(audioHandler, loadSpec.GetDisplayName(), clip); }; TrackConfigManager.instance.StartCoroutine(TrackLoadingUtils.LoadMusicTrack(customMusicLoadSpec)); } customMusicChangedQueue.Clear(); RunTitleScreenFix(); }
/// <summary> /// Loads an mp3 file as a wav AudioClip (Unity disallows "streaming" of mp3 music) /// </summary> /// /// <param name="mp3Data"> /// The content of the file as a byte[] /// </param> /// /// <returns> /// An AudioClip that can be played at will in-game. /// </returns> public static AudioClip Mp3ToWavClip(byte[] mp3Data) { return(TrackLoadingUtils.Mp3ToWavClip("mp3ToWav.wav", mp3Data)); }