Отдельный поток для музыки и управление mp3 на Java
В одной своей заметке я уже продемонстрировал, как запустить mp3 на Java. Однако, если вы на основе данного примера попробуете создать полноценный плеер, то у вас не получится. Во-первых, необходимо вынести воспроизведение в отдельный поток, а во-вторых – немного переделать метод запуска, чтобы можно было управлять проигрывателем mp3. Вот этим мы сегодня и займемся.
Потоки на Java – отдельная интересная тема, которую мы разберем в каком-нибудь следующем материале, а сейчас все, что надо знать так это то, что поток – это как бы отдельный процесс программы. Зачем это надо? Самый простой пример – это невозможность воспользоваться GUI: то есть когда будут играть музыка, то вы ничего не сможете сделать с формой. Даже закрыть. Неудобно, верно? Так что необходимо создать отдельный поток для воспроизведения mp3 на Java.
private Player player; public void play(String muss1) throws Exception { InputStream ist = new FileInputStream(muss1); player = new Player(ist); new Thread() { @Override public void run() { try { player.play(); } catch (Exception ex) { System.err.println("Ошибка воспроизведения файла" + muss1); } } }.start(); }Обратите внимание на отличия от кода в предыдущей заметке. Здесь мы используем класс Player, а не AdvancedPlayer. Почему? Потому, что AdvancedPlayer, будучи запущенным уже сам идет как отдельный поток – и мы не сможем его остановить. Точнее, сможем, но только экстренными способами – типа выхода из программы – что, конечно, не есть хорошо. А для экземпляра класса Player (у нас он называется неоригинально - player) мы создаем новую нить (Thread(), поток ), в которой запускаем воспроизведение. В обработчик кнопки Play можно поместить такой код:
try { play(muss1); } catch (Exception ex) { Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); }Где muss1 - путь к mp3 файлу. Для прекращения воспроизведения используем такой метод:
public void stop() { if( null != player) { player.close(); } }Все остальные методы управления реализовать несложно по аналогии. Вот так можно полноценно работать с mp3 с помощью Java.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.