Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 46

Музыка по нажатию на кнопку?

02.11.2017, 22:39. Показов 6123. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Хочу сделать, чтобы при нажатии на кнопку проигрывалась музыка. При нажатии на кнопку ничего не проигрывается. Помогите найти ошибку или подскажите что не так делаю.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RudButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    AudioPlayer MGP = AudioPlayer.player;
                    AudioStream BGM;
                    AudioData MD;
                    ContinuousAudioDataStream loop = null;
                try {
                    BGM = new AudioStream(new FileInputStream("C:\\Users\\viric\\Downloads\\track.mp3"));
                    MD = BGM.getData();
                    loop = new ContinuousAudioDataStream(MD);
 
                }
                catch (Exception e1) {
                }
                    MGP.start(loop);
            }
        });
Добавлено через 12 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RudButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    AudioPlayer MGP = AudioPlayer.player;
                    AudioStream BGM;
                    AudioData MD;
                    ContinuousAudioDataStream loop = null;
                try {
                    BGM = new AudioStream(new FileInputStream("C:\\Users\\viric\\Downloads\\3285.wav"));
                    MD = BGM.getData();
                    loop = new ContinuousAudioDataStream(MD);
 
                }
                catch (Exception e1) {
                }
                    MGP.start(loop);
            }
        });
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2017, 22:39
Ответы с готовыми решениями:

Музыка по нажатию на кнопку
Помогите создать программу в которой по нажатию кнопки начала играть музыка, а при клике на вторую музыка выключалась и если вновь нажать...

На форме создать кнопку и по нажатию на эту кнопку открыть фотографию
Салют всем форумчанам! Помогите мне! Как реализовать следующую задумку - на форме создать кнопку и по нажатию на эту кнопку окрывается...

Музыка при нажатии на кнопку
Как сделать так, чтобы при нажатии на кнопку проигрывалась музыка? И все это на C#

6
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
04.11.2017, 00:04
Забудьте про mp3

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package GameMain;
 
import javax.swing.JComponent;
import javax.swing.JLabel;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
 
public class class_fonSound extends JComponent
{
    public class_fonSound  ()
    {
        //...
        System.out.println("Voice");
    }
        
        
    public class SoundFon extends JLabel
    {
        public SoundFon()
        {
            //...
            fonSound();
        }
        
        public void fonSound()
        {
            try
            {
                File soundFile = new File("data/song.wav"); 
                AudioInputStream inAudio = AudioSystem.getAudioInputStream(soundFile);
                Clip clip = AudioSystem.getClip();
                clip.open(inAudio);
                clip.setFramePosition(0);
                clip.start();
                clip.loop(Clip.LOOP_CONTINUOUSLY);
            } 
            catch (Exception e)
            {
                //...
            }
        }
    }
}
0
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 46
04.11.2017, 20:28  [ТС]
Я уже понял про mp3. Но как сделать, чтобы музыка играла по нажатию на кнопку? Пробовал ток, но ничего
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RudButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    AudioPlayer MGP = AudioPlayer.player;
                    AudioStream BGM;
                    AudioData MD;
                    ContinuousAudioDataStream loop = null;
                try {
                    BGM = new AudioStream(new FileInputStream("C:\\Users\\viric\\Downloads\\3285.wav"));
                    MD = BGM.getData();
                    loop = new ContinuousAudioDataStream(MD);
 
                }
                catch (Exception e1) {
                }
                    MGP.start(loop);
            }
        });
Добавлено через 2 часа 40 минут
Записал в catch JOptionPane.showMessageDialog(null, e1); Выдало такую надпись java.io.ioexception could not create audio stream from input stream. Что это может быть и как исправить?
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
04.11.2017, 23:34
Лучший ответ Сообщение было отмечено BananaSkill как решение

Решение

Вот с кнопкой

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JButton;
import javax.swing.JFrame;
 
 
public class disco 
{
    public JFrame window = new JFrame("Welcom");
    
    
    public disco()
    {
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setBounds(0, 0, 450, 360);
        window.setResizable(false);
        window.setLayout(null);
        
        myButton();
        
        window.setVisible(true);
    }
 
    
    private void myButton()
    {
        JButton button = new JButton();
        button.setBounds(50, 50, 100, 100);
        button.setFocusable(false);
        button.setText(":)");
        window.add(button);
        
        ActionListener actionListener = new ButtonPushActionListener();
        button.addActionListener(actionListener);
    }
    
    
    private class ButtonPushActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            try
            {
                File soundFile = new File("data/song.wav"); 
                AudioInputStream inAudio = AudioSystem.getAudioInputStream(soundFile);
                Clip clip = AudioSystem.getClip();
                clip.open(inAudio);
                clip.setFramePosition(0);
                clip.start();
                clip.loop(Clip.LOOP_CONTINUOUSLY);
            } 
            catch (Exception e1)
            {
                //...
            }
        }
    }
 
    
    public static void main(String[] args)
    {
        new disco();
    }
}
0
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 46
05.11.2017, 14:07  [ТС]
Спасибо. Была такая ошибка javax.sound.sampled.UnsupportedAudioFile Exception: could not get audio input stream from input . Решилась перекодировкой wav файла в wav 16 битный pcm файл.
0
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 46
13.11.2017, 20:30  [ТС]
Можете подсказать еще пожалуйста каким образом можно сделать звук тише, какая нужна для этого библиотека?
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
14.11.2017, 14:42
BananaSkill, Вот тот же пример только с громкостью, поэксперементируйте с числом

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package base;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.FloatControl;
import javax.swing.JButton;
import javax.swing.JFrame;
 
 
public class disco 
{
    public JFrame window = new JFrame("Welcom");
    
    
    public disco()
    {
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setBounds(0, 0, 450, 360);
        window.setResizable(false);
        window.setLayout(null);
        
        myButton();
        
        window.setVisible(true);
    }
 
    
    private void myButton()
    {
        JButton button = new JButton();
        button.setBounds(50, 50, 100, 100);
        button.setFocusable(false);
        button.setText(":)");
        window.add(button);
        
        ActionListener actionListener = new ButtonPushActionListener();
        button.addActionListener(actionListener);
    }
    
    
    private class ButtonPushActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            try
            {
                File soundFile = new File("data/song.wav"); 
                AudioInputStream inAudio = AudioSystem.getAudioInputStream(soundFile);
                Clip clip = AudioSystem.getClip();
                clip.open(inAudio);
                clip.setFramePosition(0);
                
                FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
                gainControl.setValue((float) -20.0);//-10 громкость
                //gainControl.setValue(0.0f);//-10f
                clip.start();
                clip.loop(Clip.LOOP_CONTINUOUSLY);
            } 
            catch (Exception e1)
            {
                //...
            }
        }
    }
 
    
    public static void main(String[] args)
    {
        new disco();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2017, 14:42
Помогаю со студенческими работами здесь

Сделать по нажатию на 1-ую кнопку открытие формы2 на указанной записи, а на 2-ую кнопку - формы2 на новой
Здравствуйте, возник вопрос..., не буду тянуть кота за хвост. В общем: на главной форме есть 2 кнопки, также имеется вторая форма ...

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

Хочу реализовать у себя в программе при запуске что бы автоматически воспроизводилась музыка и сделать кнопку выключить звук
Хочу реализовать у себя в программе при запуске что бы автоматически воспроизводилась музыка и сделать кнопку выключить звук. может кто...

Запрос по нажатию на кнопку
Здравствуйте! Очень нужна ваша помощь... Дана основная форма со списком (поле "разряд") и кнопкой, по нажатию на которой...

Div по нажатию на кнопку
На форме есть блок div id="block2", в этом блоке находятся текстовые поля и две кнопки. одна отправляет данные на сервер, другая - выводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru