2013-04-28 2 views
2

여기에있는 코드을 모방하려고했지만 loop() 또는 start()를 통해 재생할 수 없습니다. 나는 해답을 찾았지만, 내 것은 마치 우연이나 다른 모든 사람들이 알아볼 수있는 어리석은 실수 일뿐입니다.java에서 오디오 재생이 올바르게 작동하지 않습니다.

import javax.sound.sampled.*; 
import java.net.URL; 

public class AudioTest 
{ 
    public static void main(String[] args) throws Exception 
    { 
     URL url = new URL("http://www.public.asu.edu/~wnjones1/leftright.wav"); 
     Clip clip = AudioSystem.getClip(); 
     AudioInputStream audioIn = AudioSystem.getAudioInputStream(url); 
     clip.open(audioIn); 
     clip.start(); 
    } 
} 

예제에는 GUI가 짧지 만 모든 사항이 포함되어 있지만 중요하지 않아야합니까? 적어도 한 번은 제대로 플레이 할 수 있어야합니까?

도움을 주시면 감사하겠습니다. 고맙습니다!

- EDIT-- 이것은 내 웹 사이트에서 가져온 간단한 2 초 .wav 파일입니다. Java7u21을 사용하고 있습니다.

- EDIT v2.0-- 기본적으로 내가 배운 것은 ... GUI를 유지하십시오. 또는 애플릿을 사용하여 main() 결말에 대해 걱정할 필요가 없습니다.

import javax.swing.*; 

public class Assignment6me extends JApplet 
{ 
    private int APPLET_WIDTH = 400, APPLET_HEIGHT = 160; 

    private AudioPanel ap; 

    //The method init initializes the Applet with a Pane with two tabs 
    public void init() 
    { 
     try 
     { 
      ap = new AudioPanel(); 
     } 
     catch(Exception e) 
     {} 
     getContentPane().add(ap); 
     setSize (APPLET_WIDTH, APPLET_HEIGHT); //set Applet size 
    } 
} 



import java.net.URL; 
import javax.swing.*; 
import javax.sound.sampled.*; 
import java.io.File; 


public class AudioPanel extends JPanel 
{ 
    public AudioPanel() throws Exception 
    { 
     File file = new File("Don't Stop Believin'.wav"); 
     Clip clip = AudioSystem.getClip(); 
     // getAudioInputStream() also accepts a File or InputStream 
     AudioInputStream ais = AudioSystem.getAudioInputStream(file); 
     clip.open(ais); 
     clip.start(); 
    } 
} 
+0

mp3 파일을 재생하려는 경우 j2se와 같은 자바를 사용하면 원하는 내용을 나에게 설명 할 수 있습니다. –

+0

질문이 업데이트되었습니다. .wav 파일이고 JavaSE7u21을 사용하고 있습니다. –

+0

http://stackoverflow.com/a/3821685/2277645 시도해보십시오.이 정보가 도움이 되었습니까? –

답변

1

Java 사운드 정보에서 본 (작동중인) 소스. 페이지가 정확합니다.

import java.net.URL; 
import javax.swing.*; 
import javax.sound.sampled.*; 

public class LoopSound { 

    public static void main(String[] args) throws Exception { 
     URL url = new URL(
      "http://pscode.org/media/leftright.wav"); 
     Clip clip = AudioSystem.getClip(); 
     // getAudioInputStream() also accepts a File or InputStream 
     AudioInputStream ais = AudioSystem. 
      getAudioInputStream(url); 
     clip.open(ais); 
     clip.loop(Clip.LOOP_CONTINUOUSLY); 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       // A GUI element to prevent the Clip's daemon Thread 
       // from terminating at the end of the main() 
       JOptionPane.showMessageDialog(null, "Close to exit!"); 
      } 
     }); 
    } 
} 

나는 당신의 관심을 끌기 :

   // A GUI element to prevent the Clip's daemon Thread 
       // from terminating at the end of the main() 
       JOptionPane.showMessageDialog(null, "Close to exit!"); 

그 부분을 추가하고 그것을 잘해야합니다.


그래서 나는 GUI없이 파일을 재생할 수없는 이유는 무엇입니까?

명령 줄 기반 앱을 불러올 수 없습니다. 그것은 소리를 재생하지만 가능합니다.

+0

나는 의도적으로 GUI를 빠져 나갔다. 나는 하나도없이 할 수 있다고 생각했다. 그래서 GUI없이 파일을 재생할 수 없습니까? –

+0

아니요. 나는 그 말을하지 않았습니다. 편집을 참조하십시오. 필요한 것은'main (String)'이 끝나지 않도록하는 것입니다. 그리고 만약 당신이 다시 돌아 오면 * "스캐너가 없으면 노래를들을 수 없습니까?"* 머리 위로 거꾸러 뜨려야한다는 경고를 받는다. –

+0

"그럼 ... 스캐너없이 음악을 재생할 수 없습니까?" 나는 꼬마 야. 하지만 고마워. GUI가 왜 존재하는지 더 잘 이해합니다. 그 댓글을 변경하려면 –

관련 문제