2014-01-03 2 views
0

Я успешно закодировал воспроизведение аудио в моем графическом интерфейсе.Что я могу использовать вместо AudioPlayer.player.stop() ;?

Но когда я использую: «Методы stop(), suspend() and resume() из java.lang.Thread опасны и не должны быть использованы»

AudioPlayer.player.stop(); 

Слово " остановить " зачеркнуто и выдается предупреждение говоря Я использую Netbeans IDE 6.9.1

Все, что я прочитал, не имеют проблем с использованием этого метода. Есть ли другой способ остановить воспроизведение звука?

Вот мой код:

String song = songList.getSelectedValue().toString();//determines the string of the selected value in the list box 
    if(song.equals("Matt Nathanson - Come On Get Higher")){//if this song is selected... 
     InputStream in; 
     try{ 
     in = new FileInputStream(new File("C:\\Stuff\\Grade Twelve\\Computer Programming\\Unit 4\\Step 3\\GuitarForBeginners\\src\\guitarforbeginners\\resources\\Come On Get Higher.wav")); 
     AudioStream audio = new AudioStream(in); 
     AudioPlayer.player.start(audio); 
     } 
     catch(Exception e){ 
     System.out.println("File not found"); 
     } 
     if (cancelButton.isSelected()){ 
      AudioPlayer.player.stop(audio); 
     } 
    } 

(В ответ на Greg-449)

Используется ссылку вы предложили, а также http://www.javadocexamples.com/java_source/__/co/CoreJavaSound.java.html. Программа работает, но печатает null. Идеи ?? Спасибо ..

if (song.equals("Matt Nathanson - Come On Get Higher")){//if this song is selected... 
     try{ 
      stopPlay(); 
      AudioInputStream audio = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("C:\\Stuff\\Grade Twelve\\Computer Programming\\Unit 4\\Step 3\\GuitarForBeginners\\src\\guitarforbeginners\\resources\\Come On Get Higher.wav")); 
      clip = AudioSystem.getClip(); 
      clip.open(audio); 
      clip.start(); 
     } catch(Exception e){ 
      stopPlay(); 
      System.err.println(e.getMessage()); 
} 
    } 
+0

Вы не должны использовать '' * ВС классы - см. [Этот вопрос] (http://stackoverflow.com/questions/5804811/working-with-audioplayer-in-java) альтернатив , –

+0

спасибо, см. Пересмотренный код – nicole

+0

Обратите внимание, что пересмотренный код полностью изменил вопрос! Таким образом, это q. должны быть завершены и начат новый вопрос. –

ответ

0

просто попробовать этот

String song = songList.getSelectedValue().toString();//determines the string of the selected value in the list box 
     if(song.equals("Matt Nathanson - Come On Get Higher")){//if this song is selected... 
      InputStream in; 
      InputStream closetrick; 
      try{ 
      in = new FileInputStream(new File("C:\\Stuff\\Grade Twelve\\Computer Programming\\Unit 4\\Step 3\\GuitarForBeginners\\src\\guitarforbeginners\\resources\\Come On Get Higher.wav")); 
closetrick =new FileInputStream(new File("C:\\Stuff\\Grade Twelve\\Computer Programming\\Unit 4\\Step 3\\GuitarForBeginners\\src\\guitarforbeginners\\resources\\Zerosec.wav")); 
      AudioStream audio = new AudioStream(in); 
      AudioPlayer.player.start(audio); 
      } 
      catch(Exception e){ 
      System.out.println("File not found"); 
      } 
      if (cancelButton.isSelected()){ 
       AudioStream audio2 = new AudioStream(closetrick); 
      AudioPlayer.player.start(audio2); 
      } 
     } 

где Zerosec WAV является WAV с Lenth нулевой сек

+0

Это не работает, потому что Audio Player просто воспроизводит каждую выбранную песню, перевернув друг друга, не останавливая предыдущую игру. Нулевой второй wav-файл действительно играет, но вы не можете услышать, что он перевернул другую песню, все еще играющую – nicole

+0

Я удивлен, что это работает. Часто аудиофайлы вызывают ошибки «Mark/Reset», когда они становятся InputStreams. Обычно лучше избегать InputStream и загружать файл или URL прямо в AudioInputStream. Во-вторых, если у вас есть файл, который воспроизводится, вы должны остановить его вручную перед запуском нового экземпляра. Я вообще не использую AudioPlayer. Я склонен придерживаться Clip и SourceDataLines. Поэтому мой совет не может иметь значения. –

0
** 

вы должны intilaize объект аудиоплеера, а затем вы называете его методы.

**

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