示例#1
0
        /// <summary>
        /// Возвращает список аудиозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params"> Критерии поиска </param>
        /// <returns>
        /// Список объектов класса Audio.
        /// </returns>
        /// <exception cref="System.ArgumentNullException"> Query is null or empty.;query </exception>
        /// <remarks>
        /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской,
        /// содержащей Settings.Audio
        /// Страница документации ВКонтакте http://vk.com/dev/audio.search
        /// </remarks>
        public VkCollection <Audio> Search(AudioSearchParams @params)
        {
            if (string.IsNullOrWhiteSpace(value: @params.Query))
            {
                throw new ArgumentNullException(paramName: nameof(@params.Query), message: "Query is null or empty.");
            }

            return(_vk.Call(methodName: "audio.search", parameters: @params).ToVkCollectionOf <Audio>(selector: r => r));
        }
示例#2
0
        public VkCollection <Audio> Search(AudioSearchParams @params)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentNullException("Query is null or empty.", "query");
            }

            return(_vk.Call("audio.search", @params).ToVkCollectionOf <Audio>(r => r));
        }
示例#3
0
        public ReadOnlyCollection <Audio> Search(AudioSearchParams @params, out long totalCount)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentNullException("Query is null or empty.", "query");
            }

            var response = Search(@params);

            totalCount = Convert.ToInt64(response.TotalCount);

            return(response.ToReadOnlyCollection());
        }
示例#4
0
        /// <summary>
        /// Возвращает список аудиозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params">Критерии поиска</param>
        /// <param name="totalCount">Общее кол-во аудиозаписей, найденных по этим критериям</param>
        /// <returns>Список объектов класса Audio.</returns>
        /// <remarks>
        /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Audio"/>.
        /// Страница документации ВКонтакте <see href="http://vk.com/dev/audio.search"/>.
        /// </remarks>
        public ReadOnlyCollection <Audio> Search(AudioSearchParams @params, out ulong totalCount)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentException("Query is null or empty.", "query");
            }

            VkResponseArray response = _vk.Call("audio.search", @params);

            totalCount = response[0];

            return(response.Skip(1).ToReadOnlyCollectionOf <Audio>(r => r));
        }
示例#5
0
        public ReadOnlyCollection <Audio> Search(AudioSearchParams @params, out long totalCount)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentNullException("Query is null or empty.", "query");
            }

            var response = _vk.Call("audio.search", @params);

            totalCount = response["count"];

            return(response["items"].ToReadOnlyCollectionOf <Audio>(r => r));
        }
示例#6
0
        public ReadOnlyCollection <Audio> Search(
            string query,
            out long totalCount,
            bool?autoComplete = null,
            AudioSort?sort    = null,
            bool?findLyrics   = null,
            uint?count        = null,
            uint?offset       = null)
        {
            var parameters = new AudioSearchParams
            {
                Query        = query,
                Autocomplete = autoComplete,
                Sort         = sort,
                Lyrics       = findLyrics,
                Count        = Convert.ToInt32(count),
                Offset       = offset
            };

            return(Search(parameters, out totalCount));
        }
示例#7
0
        /// <summary>
        /// запрос аудио
        /// </summary>
        /// <param name="query">Название группы или песни</param>
        /// <param name="_offset">Смещение поиска</param>
        private void GetAudio(string query, int _offset)
        {
            long i;
            var  _music = new AudioSearchParams();

            _music.Autocomplete = true;
            if (chkAuthor.IsChecked == true)
            {
                _music.PerformerOnly = true;
            }
            _music.Sort   = VkNet.Enums.AudioSort.Popularity;
            _music.Count  = 200;
            _music.Query  = query;
            _music.Offset = _offset;

            var tmpList = App.AuthPublic.Audio.Search(_music, out i);

            foreach (var s in tmpList)
            {
                MusicClass chk = new MusicClass();
                chk.Id       = (int)s.Id;
                chk.Name     = string.Format("{0} - {1}", s.Artist.Trim(), s.Title.Trim());
                chk.Path     = s.Url;
                chk.Duration = String.Format("{0}:{1:00}", s.Duration / 60, s.Duration - ((s.Duration / 60) * 60));

                string _sUrl = s.Url.ToString().Substring(0, s.Url.ToString().IndexOf(".mp3") + 4);

                //TagLib.File _file = TagLib.File.Create(new VfsFileAbstraction());
                //ICodec _codec = (ICodec)_file.Properties.Codecs;
                //IAudioCodec _acodec = _codec as IAudioCodec;

                //chk.Duration = _acodec.AudioBitrate.ToString();

                if (listSearch.Where(p => p.Name.ToLower() == chk.Name.ToLower()).Count() < 1)
                {
                    listSearch.Add(chk);
                }
            }
            lbxMusic.Items.Refresh();
        }
示例#8
0
 /// <summary>
 /// Returns a list of audio files.
 /// </summary>
 /// <param name="methodParams">A <see cref="AudioSearchParams"/> object with the params.</param>
 /// <returns>Returns a <see cref="List{T}"/> of <see cref="Audio"/> objects.</returns>
 public async Task<Response<ItemsList<Audio>>> Search(AudioSearchParams methodParams)
     => await Request<ItemsList<Audio>>("search", methodParams);
示例#9
0
        public ReadOnlyCollection<Audio> Search(AudioSearchParams @params, out long totalCount)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentNullException("Query is null or empty.", "query");
            }

            var response = _vk.Call("audio.search", @params);

            totalCount = response["count"];

            return response["items"].ToReadOnlyCollectionOf<Audio>(r => r);
        }
示例#10
0
文件: AudioCategory.cs 项目: vknet/vk
        /// <summary>
        /// Возвращает список аудиозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params">Критерии поиска</param>
        /// <returns>
        /// Список объектов класса Audio.
        /// </returns>
        /// <exception cref="System.ArgumentNullException">Query is null or empty.;query</exception>
        /// <remarks>
        /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Audio" />.
        /// Страница документации ВКонтакте <see href="http://vk.com/dev/audio.search" />.
        /// </remarks>
        public VkCollection<Audio> Search(AudioSearchParams @params)
        {
            if (string.IsNullOrEmpty(@params.Query))
            {
                throw new ArgumentNullException("Query is null or empty.", "query");
            }

            return _vk.Call("audio.search", @params).ToVkCollectionOf<Audio>(r => r);
        }
示例#11
0
 /// <inheritdoc />
 public VkCollection <Audio> Search(AudioSearchParams @params)
 {
     return(_vk.Call <VkCollection <Audio> >("audio.search", @params));
 }
示例#12
0
        /// <summary>
        /// Возвращает список аудиозаписей в соответствии с заданным критерием поиска.
        /// </summary>
        /// <param name="params">Критерии поиска</param>
        /// <param name="totalCount">Общее кол-во аудиозаписей, найденных по этим критериям</param>
        /// <returns>Список объектов класса Audio.</returns>
        /// <remarks>
        /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Audio"/>.
        /// Страница документации ВКонтакте <see href="http://vk.com/dev/audio.search"/>.
        /// </remarks>
        public ReadOnlyCollection<Audio> Search(AudioSearchParams @params, out ulong totalCount)
        {
            if (string.IsNullOrEmpty(@params.Query))
                throw new ArgumentException("Query is null or empty.", "query");

            VkResponseArray response = _vk.Call("audio.search", @params);

            totalCount = response[0];

            return response.Skip(1).ToReadOnlyCollectionOf<Audio>(r => r);
        }
 /// <inheritdoc />
 public Task <VkCollection <Audio> > SearchAsync(AudioSearchParams @params)
 {
     return(TypeHelper.TryInvokeMethodAsync(() => Search(@params)));
 }