#java #audio #startup #joptionpane
#java #Аудио #запуск #joptionpane
Вопрос:
Я создаю игру и хотел добавить звук для моей страницы выбора персонажа. Итак, я создал рабочий java-файл, который воспроизводит песню, но как мне заставить файл песни воспроизводиться при запуске моего экрана выбора персонажа?
Примечание: оба файла находятся в одном пакете.
package comp_sci;
import java.io.*;
import sun.audio.*;
public class PlaySound
{
public static void main(String[] args)
throws Exception
{
// open the sound file as a Java input stream
String gongFile = "music.wav";
InputStream in = new FileInputStream(gongFile);
// create an audiostream from the inputstream
AudioStream audioStream = new AudioStream(in);
// play the audio clip with the audioplayer class
AudioPlayer.player.start(audioStream);
}
}
Это мой звуковой файл. Чтобы заставить это воспроизводиться в моей другой программе, я попробовал приведенный ниже код, но он не сработал.
PlaySound winn2 = new PlaySound();
Ответ №1:
В вашем классе PlaySound создайте вызываемый метод playSound
, который содержит код для воспроизведения песни
public void playSound(String filename) {
InputStream in = new FileInputStream(filename);
AudioStream audioStream = new AudioStream(in);
AudioPlayer.player.start(audioStream);
}
Чтобы вызвать этот метод при запуске, используйте следующий код
PlaySound winn2 = new PlaySound();
winn2.playSound("music.wav");
Причина, по которой ваш код не работал, заключается в том, что метод main() используется, если вы начинаете с этого класса. Если вы хотите запустить код, вам нужно либо создать экземпляр класса, либо использовать статические методы.
Комментарии:
1. Я не понимаю
2. Метод main выполняется только в том случае, если вы начинаете с этого файла. Если вы сделаете то, что вы сделали в своем вопросе, метод main() не будет выполняться. Вы должны поместить свой код в общедоступный метод и вызвать его из своего кода меню, как в моем вопросе
3. так мне удалить свой музыкальный код и просто вставить то, что вы написали? Но что мне заполнить в имени файла spot?