2016-01-28 7 views
1

Я знаю, что этот вопрос задал несколько раз об звуке, и поверьте мне, я просмотрел, чтобы попытаться выработать собственный ответ. У меня был звук в Java работает, прежде чем на другом проекте без каких-либо трудностей, с помощью этого:Java Sound .WAV format

public void playWelcome(){ 

    try{ 

    InputStream inputStream = 

    getClass().getResourceAsStream("Start.wav"); 

    AudioStream audioStream = new AudioStream(inputStream); 

    AudioPlayer.player.start(audioStream); 

    }catch(IOException ioException){ 

    ioException.printStackTrace(); 

    System.out.println("Unable to Find WAV/Start FIle"); 
    } 
} 

Очевидно, что это не работает, прежде чем, как описано, так что я пытался использовать:

public void uploadDownload() { 

    try { 
    AudioInputStream audioInputStream = 

    AudioSystem.getAudioInputStream(new 

    File("/DaWord/src/resources/upload.wav").getAbsoluteFile()); 

    Clip clip = AudioSystem.getClip(); 

    clip.open(audioInputStream); 

    clip.start(); 

    } catch(Exception ex) { 

    System.out.println("Error with playing sound."); 

    ex.printStackTrace(); 
    } 
} 

ПРИМЕЧАНИЕ: Я тоже пробовал файл без косых черт. например 'my file.wav' Может ли кто-нибудь помочь мне немного здесь?

UPDATE:

Так мне удалось получить это происходит .. вид:

Файл SoundFile = новый файл ("/ Users/MyName/DaWord/SRC/testing.wav");

 AudioInputStream audioIn = 

AudioSystem.getAudioInputStream (soundFile);

 // Get a sound clip resource. 
    Clip clip = AudioSystem.getClip(); 

    // Open audio clip and load samples from the audio input stream. 
    clip.open(audioIn); 

    clip.start(); 

Но кто-нибудь знает, как это сделать, не предоставляя абсолютный путь ?? Я попытался использовать .absoulutePath(); в конце файла, например: Файл

file = new Файл ("sound.wav"). absouloutePath();

+0

Вы пробовали использовать только: AudioSystem.getAudioInputStream File (новый File ("/ DaWord/SRC/ресурсы/upload.wav"))? – hasnae

+0

Эй, просто попробовал это, его нет, продолжайте получать исключение нулевого указателя в выходе. Благодарю вас. – TravJav92

ответ

0

Как пояснялось here это есть способы выделить AudioInputStream водопроводного из файла или URL ,:

// from a wave File 
File soundFile = new File("eatfood.wav"); 
AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile); 
// from a URL 
URL url = new URL("http://www.zzz.com/eatfood.wav"); 
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url); 
// can read from a disk file and also a file contained inside a JAR (used for distribution) 
// recommended 
URL url = this.getClass().getClassLoader().getResource("eatfood.wav"); 
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url); 
+1

Используйте getClass(). GetClassLoader(). GetResource (...) ', если вы не хотите, чтобы файлы были разрешены относительно класса, ресурсы, разрешенные' getClass(). GetResource() 'будет (если без ведущая косая черта) разрешается относительно указанного класса. – RAnders00

+0

Я просто попробовал wav, а также метод Url ... все еще не работаю по какой-то нечетной причине. Я продолжаю получать исключение из null-указателя. Я просмотрел все очевидные, такие как импорт для File IO, а также создание убедитесь, что фактический файл находится в классе/ресурсе и играет его, чтобы удостовериться, что theres ничего странного не происходит, и его штраф, нечетный – TravJav92

0

Это работало на некоторое время ... полным путем

Файл SoundFile = новое Файл ("/ Users/mrBerns/NetBeansProjects/DaWord/SRC/ching.wav");

 AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);    
    // Get a sound clip resource. 
    Clip clip = AudioSystem.getClip(); 
    // Open audio clip and load samples from the audio input stream. 
    clip.open(audioIn); 
    clip.start(); 

 Смежные вопросы

  • Нет связанных вопросов^_^