private IEnumerator LoadMusic(string filepath, MusicTypeInfo typeInfo, string musicName, int endIndex) { filepath = "file://" + filepath; using (var www = UnityWebRequestMultimedia.GetAudioClip(filepath, AudioType.MPEG)) { yield return(www.SendWebRequest()); if (www.isNetworkError) { Debug.LogError(www.error); } else { AudioClip clip = DownloadHandlerAudioClip.GetContent(www); MusicInfo info = new MusicInfo(); info.clip = clip; info.name = musicName; info.index = index; info.time = clip.length; typeInfo.musicList.Add(info); if (index == endIndex) { ShowMusicListItem(typeInfo); } index += 1; } } }
private void ShowMusicListItem(MusicTypeInfo info) { for (int i = 0; i < info.musicList.Count; i++) { MusicItem item = Instantiate(itemPrefab); item.SetContent(info.musicList[i]); item.transform.SetParent(musicParent, false); } typeNameText.text = info.name + "(" + info.musicList.Count + ")"; }
public void SetContent(MusicInfo _info, MusicTypeInfo _typeInfo) { gameObject.SetActive(true); typeInfo = _typeInfo; info = _info; nameText.text = info.name; timeSlider.value = 0; passTimeText.text = Util.SecToTimeString(0); remainTimeText.text = Util.SecToTimeString(info.time); SoundManager.manager.PlayMusic(info.clip); }
public void ParseMusic() { var t = Resources.Load <TextAsset>("Music/music"); JsonData data = JsonMapper.ToObject(t.text); for (int i = 0; i < data.Count; i++) { MusicTypeInfo info = new MusicTypeInfo(); info.type = (string)data[i]["type"]; info.url = (string)data[i]["url"]; info.name = (string)data[i]["name"]; typeList.Add(info); } }
private void ShowMusicList(MusicTypeInfo info) { Util.DeleteChildren(musicParent); string path = ""; #if UNITY_EDITOR path = Application.streamingAssetsPath + info.url; #else path = Application.persistentDataPath + info.url; #endif Debug.Log(path); DirectoryInfo direction = new DirectoryInfo(path); FileInfo[] files = direction.GetFiles("*.mp3", SearchOption.AllDirectories); info.musicList.Clear(); index = 1; int endCount = files.Length; for (int i = 0; i < files.Length; i++) { FileInfo f = files[i]; StartCoroutine(LoadMusic(f.FullName, info, f.Name, endCount)); } typeNameText.text = info.name + "(" + info.musicList.Count + ")"; }
public void SetContent(MusicTypeInfo _info) { info = _info; showImage.sprite = Resources.Load <Sprite>("Music/" + info.type); nameText.text = info.name; }