コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }
コード例 #3
0
        /// <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;
        }
コード例 #4
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]);
            }
        }