Суббота, 20.04.2024, 15:25
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Delphi » Разное » Аудиозаписи ВКонтакте
Аудиозаписи ВКонтакте
ThePro94Дата: Пятница, 13.07.2012, 00:32 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Нужно загрузить список всех аудиозаписей со страницы вконтакте в ListBox. Есть код:
Code
procedure TForm1.Button3Click(Sender: TObject);
begin
a := IdHTTP1.Get('http://vk.com/audio.php'); // Получаем страничку пользователя
begin
      Delete(a,1, Pos('http://cs',a)-1); // Удаляем лишнее
      b  := Copy (a,1,(pos('.mp3', a) +3)); //
ListBox1.Items.Add(b);
end;
  end;

Но загружается только первая аудиозапись. Как загрузить все?
 
xaramamburuДата: Пятница, 13.07.2012, 23:41 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
ThePro94,
Попробуйте так:
Code
procedure TForm1.Button3Click(Sender: TObject);
begin
  a := IdHTTP1.Get('http://vk.com/audio.php'); // Получаем страничку пользователя
     begin
      while Pos('value="http://cs',a)<>0  do
        begin
           Delete(a,1, Pos('http://cs',a)-1); // Удаляем лишнее
           b  := Copy (a,1,(pos('.mp3', a) +3)); //
           ListBox1.Items.Add(b);
           Delete(a,1,(pos('.mp3', a) +3)); // Удаляем лишнее
        end;
     end;
end;

smile
 
ThePro94Дата: Суббота, 14.07.2012, 01:06 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Вот, теперь другое дело) Спасибо
Еще пару вопросов:
Как вместо ссылки в листбоксе выводить исполнителя и название трека? И как это воспроизвести?
С воспроизведением пробовал что то сделать, загрузка песни идет, но не могу добавить и воспроизвести ее.
 
xaramamburuДата: Воскресенье, 15.07.2012, 00:15 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
ThePro94,
Воспроизвести можно используя библиотеку Bass. Смотрите урок по созданию интернет радио.

var
channel:HStream;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
BASS_StreamFree(channel);
channel:=BASS_streamCreateURL(pansichar(AnsiString(ListBox1.Items.Strings[ListBox1.ItemIndex])), 0, BASS_STREAM_STATUS, nil, 0);
BASS_ChannelPlay(channel, false);
end;

А как получить теги из потока я не знаю (вообще возможно ли это?), но вся информация о аудиозаписях находится в коде HTML страницы, поэтому нужно писать парсер (что то аналогичное получению ссылок на аудиозаписи).))))))))))
 
ThePro94Дата: Воскресенье, 15.07.2012, 00:26 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Quote (xaramamburu)
А как получить теги из потока я не знаю (вообще возможно ли это?), но вся информация о аудиозаписях находится в коде HTML страницы, поэтому нужно писать парсер (что то аналогичное получению ссылок на аудиозаписи)

в ID3 тегах должно все быть...Как можно скачать файл (в папку с программой) и добавить его в листбокс, заменив им ссылку в листбоксе?


Сообщение отредактировал ThePro94 - Воскресенье, 15.07.2012, 00:29
 
xaramamburuДата: Воскресенье, 15.07.2012, 22:25 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
ThePro94,
Ну если вы хотите в начале скачивать файл, а затем воспроизводить, то здесь думаю проблем больших нет. Для скачки можно использовать модуль UrlMon вот здесь есть пример его использования http://www.delphisources.ru/pages/faq/base/download_file.html . Ну и по работе с Id3 тегами можно использовать библиотеку Tags (пример и саму библиотеку можно взять здесь http://www.programmersforum.ru/showpost.php?p=398783&postcount=6 ), хотя есть и другие варианты работы с Id3 тегами например http://www.delphi.int.ru/articles/1/ , немного информации есть здесь на форуме http://basicsprog.ucoz.ru/forum/4-4-1 , http://basicsprog.ucoz.ru/forum/4-4-2 . Но скачивать файл, а затем его воспроизводить это не серьезно и очень медленно. Музыку надо воспроизводить прямо из контакта, например как сделано в VKAUDIO. Поэтому писать нужно потоковый плеер и воспроизводить музыку как я показал в предыдущем примере, а название и исполнителя парсить с HTML страницы.))))))
 
ThePro94Дата: Воскресенье, 22.07.2012, 16:15 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Возник еще вопрос, уже по поводу тегов - как загрузить обложку альбома в Image?
разобрался


Сообщение отредактировал ThePro94 - Понедельник, 23.07.2012, 12:27
 
Форум » Delphi » Разное » Аудиозаписи ВКонтакте
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024Конструктор сайтов - uCoz