2016-08-22 4 views
1

Я хотел бы сыграть в wav-файл, и после того, как я нашел его в Google, я нашел этот скрипт, но он не работает. (Это не бросать никаких исключений и не имеют проблем с компиляцией)Как играть в wav-файл с помощью Java?

import java.io.File; 
import films.Film; 
import javax.sound.sampled.AudioSystem; 
import javax.sound.sampled.Clip; 

public class MusicStorage { 

/** 
* Opens a wav file and plays it 
* @param args 
*/ 
public void play(Film song) { 
    try { 
     Clip sound = AudioSystem.getClip(); 

     sound.open(AudioSystem.getAudioInputStream(new File(song.getClip()))); 

     sound.start(); 

     while (sound.isRunning()) 
      Thread.sleep(1000); 

     sound.close(); 
    } catch (Exception e) { 
     System.out.println("Whatever" + e); 
    } 
    } 
} 

import audio.MusicStorage; 
import films.Film; 

public class Aplication { 

private static Film gladiator = new Film("Gladiator", "gladiator.wav"); 
private static MusicStorage storage = new MusicStorage(); 

public static void main(String[] args) { 
    storage.play(gladiator); 
} 
} 

public class Film { 

private String name; 
private String clip; 

public Film(String name, String clip) { 
    this.name = name; 
    this.clip = clip; 
} 

public String getClip() { 
    return clip; 
} 

public String getName() { 
    return name; 
} 
} 

Я добавил весь код, который у меня есть, так что я надеюсь, что это будет ясно, решить мою проблему

+0

где ваш основной метод, когда вы называете игру (песня о песне)? Пожалуйста, покажите весь связанный код – smoggers

+0

, удалив, пока (sound.isRunning()) должен работать! –

+0

Ничего не ожидал. В коде не содержится ничего, что должно запускать что-либо. –

ответ

0

Просто удалите время цикла от вашего кода, и он должен быть исправлен. Цикл while делает поток спящим так, что он не может воспроизводить аудиофайл.

public void play(Film song) { 
    try { 
     Clip sound = AudioSystem.getClip(); 

     sound.open(AudioSystem.getAudioInputStream(new File(song.getClip()))); 

     sound.start(); 

    } catch (Exception e) { 
     System.out.println("Whatever" + e); 
    } 
    } 
} 

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

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