Как получить список аудиозаписей с помощью VK SDK на Android?

Рейтинг: 4Ответов: 2Опубликовано: 10.02.2015

Сабж. Вместе с VK SDK поставлялся тестовый проект. В нём на примерах пытался получить список аудиозаписей. Укажите на ошибки, что я делаю не так?

P.S. Авторизовался. В скоупы определил доступ к аудиозаписям.

VKRequest requestaudio = new VKRequest("audio.get",     VKParameters.from(VKApiConst.OWNER_ID, "1", VKApiConst.COUNT, "3"));
                requestaudio.executeWithListener(new VKRequestListener() {
                    @Override
                    public void onComplete(VKResponse response) {
                        super.onComplete(response);
                    }
                    @Override
                    public void onError(VKError error) {
                        super.onError(error);
                    }
                });

Ответы

▲ 4

А где запускаешь этот код? Я запустил в Activity в onCreate. все работает.

 VKParameters params = new VKParameters();
    params.put(VKApiConst.OWNER_ID, "1");
    params.put(VKApiConst.COUNT, "3");

    requestaudio= new VKRequest("audio.get",params);
    requestaudio.executeWithListener(new VKRequest.VKRequestListener() {

            @Override
            public void onComplete(VKResponse response) {
                super.onComplete(response);
            }

            @Override
            public void onError(VKError error) {
                super.onError(error);
            }
    });
▲ 2

Вот код, который позволяет получить свои аудиозаписи начиная с "m_nOffset" и заканчивая "m_nOffset+m_nCount". В результате с помощью Vk SDK преобразуем response в VKList, а сним работаем как с обычным листом и получаем все нужные нам даные.

VKParameters params = new VKParameters();
    params.put(VKApiConst.OFFSET, m_nOffset);
    params.put(VKApiConst.COUNT, m_nCount);
    VKRequest requestAudio = VKApi.audio().get(params);
    requestAudio.executeWithListener(new VKRequest.VKRequestListener() {
        @Override
        public void onComplete(VKResponse response) {
            super.onComplete(response);
            for(int i = 0;i<((VKList<VKApiAudio>)response.parsedModel).size();i++){
                VKApiAudio vkApiAudio = ((VKList<VKApiAudio>)response.parsedModel).get(i);

                AudioFileData audioFileData = new AudioFileData();
                audioFileData.setArtist(vkApiAudio.artist);
                audioFileData.setTitle(vkApiAudio.title);
                audioFileData.setDuration(vkApiAudio.duration);
                audioFileData.setId(vkApiAudio.id);
                audioFileData.setIdLyrics(vkApiAudio.lyrics_id);
                audioFileData.setUrl(vkApiAudio.url);

                audioFileDataArrayList.add(audioFileData);
            }
            mAudioRecyclerViewAdapter = new AudioRecyclerViewAdapter(audioFileDataArrayList,m_tvPlayingTitle);
            mRecyclerView.setAdapter(mAudioRecyclerViewAdapter);
            mAudioRecyclerViewAdapter.notifyDataSetChanged();
        }

        @Override
        public void attemptFailed(VKRequest request, int attemptNumber, int totalAttempts) {
            super.attemptFailed(request, attemptNumber, totalAttempts);
        }

        @Override
        public void onError(VKError error) {
            super.onError(error);
        }

        @Override
        public void onProgress(VKRequest.VKProgressType progressType, long bytesLoaded, long bytesTotal) {
            super.onProgress(progressType, bytesLoaded, bytesTotal);
        }
    });