/// <summary> /// 当歌曲播放完毕时是单曲播放时 /// </summary> private static void OnSinglePlay() { ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; scenesDatas.AudioSource.Stop(); UILyricControl.ResetLyric(scenesDatas.LyricItems); scenesDatas.VideoPlayer.Stop(); ModelManager.Instance.GetLogicDatas.Index = 0; SongControl.ReleaseAudioRelatedResources(); }
/// <summary> /// 释放已播放完毕的音频相关资源 /// </summary> private static void ReleaseAudioRelatedResources() { ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; scenesDatas.AudioSource.Stop(); scenesDatas.AudioSource.clip?.UnloadAudioData(); scenesDatas.AudioSource.clip = null; ModelManager.Instance.GetLogicDatas.LyricInfo = null; scenesDatas.VideoPlayer.Stop(); scenesDatas.VideoPlayer.enabled = false; scenesDatas.VideoPlayer.clip = null; UILyricControl.ResetLyric(scenesDatas.LyricItems); scenesDatas.SongName.text = string.Empty; scenesDatas.SongPlayingTime.text = string.Empty; scenesDatas.SongTotalTime.text = string.Empty; scenesDatas.SongTimeSlide.value = 0.0f; UnityEngine.Resources.UnloadUnusedAssets(); }
/// <summary> /// 当歌曲播放完毕时是单曲循环时 /// </summary> private static void OnSingleCycle() { LogicDatas logicDatas = ModelManager.Instance.GetLogicDatas; ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; scenesDatas.AudioSource.time = 0.0f; scenesDatas.AudioSource.Play(); scenesDatas.VideoPlayer.time = 0.0f; scenesDatas.VideoPlayer.Play(); scenesDatas.SongPlayingTime.text = "00:00"; scenesDatas.SongTimeSlide.value = 0.0f; UILyricControl.ResetLyric(scenesDatas.LyricItems); UILyricControl.InitLyric(scenesDatas.LyricItems, logicDatas.LyricInfo); if (!string.IsNullOrEmpty(scenesDatas.VideoPlayer.url) && scenesDatas.VideoPlayer.isPrepared) { scenesDatas.VideoPlayer.Play(); } logicDatas.Index = 0; }
/// <summary> /// 当歌曲播放完毕时是顺序播放时 /// </summary> private static void OnPlayInOrder() { LogicDatas logicDatas = ModelManager.Instance.GetLogicDatas; ScenesDatas scenesDatas = ModelManager.Instance.GetScenesDatas; logicDatas.CurrentSongIndex++; logicDatas.Index = 0; if (logicDatas.CurrentSongIndex >= logicDatas.SongsName.Length) { scenesDatas.AudioSource.Stop(); UILyricControl.ResetLyric(scenesDatas.LyricItems); if (scenesDatas.VideoPlayer.isPlaying) { scenesDatas.VideoPlayer.Stop(); } logicDatas.CurrentSongIndex = logicDatas.SongsName.Length - 1; } else { SongControl.ReleaseAudioRelatedResources(); SongControl.LoadNextSong(logicDatas.SongsName[logicDatas.CurrentSongIndex]); } }