Поиск информации о плейлистах на веб-сайте - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь реализовать радио-приложение для следующего сайта: http://www.c895.org/mp3/

Сайт использует SGPlayer для отображения исполнителя и названий песен. Я могу получить эту информацию, но не могу найти, где я могу получить доступ к ранее воспроизведенным трекам.

Я использовал инструменты разработчика Google в Chrome, чтобы попытаться найти ссылки API или данные JSON, но не смог найти, где хранится информация о плейлистах.

Должен ли я продолжать искать данные или вместо этого внедрить в свое приложение для Android способ подачи данных на основе того, что отображается на веб-сайте?

Я думал об использовании AsyncTasks для эффективной загрузки данных через бэкэнд.

Любые идеи, мысли и мнения очень помогают!

1 Ответ

1 голос
/ 10 марта 2019

Ваши списки воспроизведения доступны там: https://www.c895.org/playlist/

Я думаю, что анализ страницы лучше, чем использование частных API.Для этого вы можете использовать JSOUP .

Пример для этого сайта:

String url = "https://www.c895.org/playlist/";
Document document = Jsoup.connect(url).get();

Element playlist = document.select("#playlist").first();

List<TrackInfo> tracks = new ArrayList<>();

for (Element track : playlist.children()) {
    long time = Long.parseLong(track.dataset().get("ts"));
    String title = track.select(".title").first().text();
    String artist = track.select(".artist").first().text();

    // `time * 1000` because `java.util.Date` requires milliseconds
    // but `time` (`data-ts`) is a count of seconds
    tracks.add(new TrackInfo(new Date(time * 1000), title, artist));
}

// example output:
// TrackInfo{date=Sun Mar 10 22:06:58 MSK 2019, title='Grapevine', artist='Tiësto'}
System.out.println(tracks.get(0));

Где TrackInfo:

class TrackInfo {
    private Date date;
    private String title, artist;

    public TrackInfo(Date date, String title, String artist) {
        this.date = date;
        this.title = title;
        this.artist = artist;
    }

    @Override
    public String toString() {
        return "TrackInfo{" +
                "date=" + date +
                ", title='" + title + '\'' +
                ", artist='" + artist + '\'' +
                '}';
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getArtist() {
        return artist;
    }

    public void setArtist(String artist) {
        this.artist = artist;
    }
}

ИтакВы можете найти песню, которая воспроизводится в любой момент времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...