Как воспроизвести звук, который является другим файлом

#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?