/// <summary> /// Adds audio from vk.com to collection. /// </summary> /// <param name="vkAudio">Audio to add.</param> /// <param name="audioType">Set AudioType.atFile to save locally not only link, but also .mp3 itself.</param> /// <returns>Returns <c>mpAudio</c> instance that refers to the new element of collection.</returns> public mpAudio addAudio(PashaAudio vkAudio, AudioType audioType = AudioType.atLink) { mpAudio audio; if (audioType == AudioType.atFile) audio = new mpAudioLink(vkAudio); else audio = new mpLocalAudio(vkAudio); audio.Id = ++maxId; if (audio.Id == int.MaxValue) OptimizeIndex(); return audio; }
internal mpLocalAudio(PashaAudio vkAudio) { Link = mpDataBaseController.Instance().generateFileName(); HttpWebResponse response = (HttpWebResponse)((HttpWebRequest)WebRequest.Create(vkAudio.url)).GetResponse(); FileStream fs = new FileStream(Link, FileMode.Create); Stream rs = response.GetResponseStream(); rs.CopyTo(fs); rs.Close(); fs.Close(); Title = vkAudio.title; Artist = vkAudio.artist; }
internal mpAudioLink(PashaAudio vkAudio) { VKID = vkAudio.aid; Link = vkAudio.url; Artist = vkAudio.artist; Title = vkAudio.title; }