Java (работа с музыкой)

Рейтинг: 0Ответов: 1Опубликовано: 12.11.2014

Привет.

Разбирался с прослушиванием музыки онлайн (по url), а также с оперированием с ней тоже "онлайн". Но тут возникли две проблемки:

  1. Приходится либо сначала полностью скачать песню на компьютер, а потом перематывать и т.п.
  2. Можно сразу воспроизводить онлайн (по url), но с ней практически ничего нельзя сделать, а главное - перематывать (исходя из всех знаний, которые я нарыл).

Так вот вопрос: есть ли возможность в Java воспроизводить песню по url и тут же перематывать ее, например?

Обновление

В общем-то по URL с использованием BasicPlayer:

player = new BasicPlayer();
try {
     player.open(new URL(url));
    player.play();     
} catch (BasicPlayerException | MalformedURLException e) {
    e.printStackTrace();
}

Обновление 2

Попробовал. Сначала скачиваем файл:

BasicPlayer player = new BasicPlayer();
File file = null;
try {
    file = new File("C:\\1.mp3");
    if (!file.exists()) {
        FileUtils.copyURLToFile(new URL("https://cs1-45v4.vk-cdn.net/p12/e76216cc4565a4.mp3"), file);
    }
}
catch (Exception e) {
     e.printStackTrace();
}
player.open(file);
player.seek(2000);
player.play();

Не работает. Или я неправильно делаю?

Ответы

▲ 1

Насколько я понимаю, у класса есть метод seek(bytes), который пропускает указанное количество байт. Осталось лишь определить как именно вы будете реализовывать перемотку (по времени, по полосе перемотки) и отсюда прыгать - как именно рассчитать количество байтов для пропуска (ну, и разобраться как определить, когда можно перематывать и прочие нюансы).

http://www.javazoom.net/jlgui/docs/docs2.3/javazoom/jlgui/basicplayer/BasicPlayer.html