public static AlbumContainer Load(string path) { TextAsset _xml = Resources.Load <TextAsset>(path); XmlSerializer serializer = new XmlSerializer(typeof(AlbumContainer)); StringReader reader = new StringReader(_xml.text); AlbumContainer albums = serializer.Deserialize(reader) as AlbumContainer; reader.Close(); return(albums); }
void Start() { AlbumContainer ac = AlbumContainer.Load(path); foreach (Album album in ac.albums) { LoadAlbumDescription(album); GameObject albumObject = Instantiate(albumPrefab); albumObject.name = album.artist + " - " + album.title; albumObject.transform.SetParent(transform); albumObject.GetComponent <SpriteRenderer>().sprite = Resources.Load(spritePath + album.sprite) as Sprite; AudioManager am = albumObject.GetComponent <AudioManager>(); AlbumInfo ai = albumObject.GetComponent <AlbumInfo>(); ai.a = album; am.numSongsA = album.numTracksA; am.numSongsB = album.numTracksB; MusicGameState.currentAlbum = albumObject; MusicGameState.currAM = am; am.sounds = new AudioManager.Sound[album.numTracksA + album.numTracksB]; Debug.Log("sounds.length: " + am.sounds.Length); string[] songNames = album.songs.Trim().Split(','); //int i = 0; for (int i = 0; i < am.sounds.Length; i++) { am.sounds[i].name = (i + 1).ToString(); Debug.Log(musicPath + album.musicFolder + "/" + (i + 1) + ".mp3"); am.sounds[i].clip = Resources.Load(musicPath + album.musicFolder + "/" + (i + 1)) as AudioClip; //if (am.sounds[i].clip == null) Debug.Log("resources load failed!"); am.sounds[i].loop = false; } am.Init(); } }
protected void CacheTracks(AlbumContainer model) { if (model.Album.Tracks?.SongsList == null) { return; } foreach (var track in model.Album.Tracks.SongsList) { var trackCached = _cache.TryGetValue(track.Id, out _); if (!trackCached) { _cache.Set(track.Id, track, new MemoryCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.UtcNow.AddHours(5), AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(5), SlidingExpiration = TimeSpan.FromHours(1), }); } } }