Esempio n. 1
0
    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();
        }
    }
Esempio n. 3
0
        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),
                    });
                }
            }
        }