В приложении Java, как можно выводить звук в функцию красок? Я пробовал этот код:Java Audio in paint function
public static void Player(String audioname){ //For audio
InputStream in = null;
try{
in = new FileInputStream (new File (audioname));
}
catch (FileNotFoundException e){
System.err.print("Audio file not found!");
}
try{
as = new AudioStream (in);
}
catch (IOException e){
System.err.print("AudioStream couldn't be created!");
}
}
////////////////////////////////////////////////////////////////
try{
Player(name);
AudioPlayer.player.start(as);
} catch(Exception f){
System.err.print("Audio couldn't be played!");
}
... однако игрок попадает в выписку Exception f catch. Я также попытался поместить его в другом месте (как отдельный метод, что краска звонки, но он все еще не работает какой-либо помощь
Edit:.?
class playAudio implements Runnable{
public void run(){
try{
Player("countdown.wav");
AudioPlayer.player.start(as);
} catch(Exception f){
System.err.print("Audio couldn't be played!");
}
}
}
///////////////////////////////////////
public void paint(Graphics g){ //Draw function
Graphics2D g2d = (Graphics2D) g;
///////////////////////////////////
Thread audioThrd = new Thread(new playAudio());
audioThrd.start();
}
Здесь я добавил нить для воспроизведения аудиофайла, но «Звук не воспроизводится!» все еще показывает. Что я здесь делаю неправильно?
'' ... выводить аудио в функцию краски? "' - это утверждение для меня не имеет смысла. Измените свой блок catch, чтобы напечатать stacktrace, 'f.printStackTrace()', и покажите нам результат. Вы могли бы очень хорошо искать место для hte-файла. –
Мои первые впечатления, не надо. 'paint' - это сделать как можно быстрее и не должно быть возиться с попыткой загрузить ресурсы ... – MadProgrammer
' public void paint (Graphics g) {...} ' – Avadonia