На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Отдельный поток для музыки и управление 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, mp3, музыка

Читайте также:




SendKeys в VBScript и Fn
Управляем позицией элемента на разных экранах при помощи @media screen


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.