2011-11-26 10 views
0

Java AudioClip에 대한 이전 호를 읽었으며 조사를 마쳤습니다. 아직까지는 AudioClip이 재생되지 않습니다. .wav 클립은 Eclipse IDE에서 제대로 작동하지만 적절한 디렉토리에도 있습니다. 파일 이 잘못된 디렉토리에 있으면이 코드 단편은 오류 메시지를 표시합니다.Java AudioClip - 소리가 나지 않습니다. 오류가 없습니다.

내 교수는

audioClip = Applet.newAudioClip(new File(filePath).toURI().toURL());이 경우에는 호출되지 NO SOUND됩니까 하단에있는 놀이 방법을 실행, 우리는이 형식을 사용하여의 AudioClip을한다는 것을 물었다! 도움이 될 것입니다.

import java.applet.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.File; 
import java.net.MalformedURLException; 

public class PlaySoundApplet extends Applet implements ActionListener 
{ 
    private static final long serialVersionUID = 1L; 
    Button play,stop; 
    AudioClip audioClip; 

    public void init() 
    { 
     play = new Button("Play"); 
     add(play); 
     play.addActionListener(this); 

     stop = new Button("Stop"); 
     add(stop); 
     stop.addActionListener(this); 

     try 
     { 
      String filePath = "." + File.separator + "audio" + File.separator + "island_music.wav"; 

      File file = new File(filePath); 

      if (file.exists()) 
      { 
       audioClip = Applet.newAudioClip(file.toURI().toURL()); 
      } 
      else 
      { 
       throw new RuntimeException("Directory " + filePath + " does not exist"); //debugging 
      } 
     } 
     catch (MalformedURLException malformedURLException) 
     { 
      throw new RuntimeException("Malformed URL: " + malformedURLException); //debugging 
     } 
    } 

    public void actionPerformed(ActionEvent ae) 
    { 
     Button source = (Button)ae.getSource(); 

     if (source.getLabel() == "Play") 
     { 
      audioClip.play(); 
      System.out.println("Play was executed"); 
     } 
     else if(source.getLabel() == "Stop") 
     { 
      audioClip.stop(); 
      System.out.println("Stop was executed"); 
     } 
    } 
} 
+1

* "소리는 들리지 않지만 소리가 나지 않습니다!"* 외쳐서는 안됩니다! 간단한 ['leftright.wav'] (http://pscode.org/media/#sound) 코드를 사용해보십시오. 귀하의 숙제는 이것이 애플릿이어야 함을 명시합니까? –

+0

와우 ... 왼쪽 .wav 작품! 그래서 나는 .wav 파일의 다른 유형을 시도해야 할 것 같아요? –

답변

0

간단한 코드 leftright.wav을 사용해보십시오.

.. 왼쪽의 wav 작품!

대부분의 미디어 형식 (사운드, 이미지, 비디오 등)은 '컨테이너 형식'으로 알려져 있습니다. 미디어의 인코딩은 여러 유형이있을 수 있습니다. Java는 일부 인코딩은 읽지 만 다른 것은 읽지 않습니다.

그래서 다른 유형의 .wav 파일을 시도해야 할 것 같습니까?

응용 프로그램 리소스의 경우 현재 WAV를 Java Sound와 호환되는 유형으로 변환하는 경향이 있습니다.

0

프로그램을 빌드하고 실행하면 사운드가 재생되지 않습니까? wav 파일을 리소스 폴더에 포함하고 getResources()를 사용하여 파일을 찾아야합니다. 또는 다른 옵션은 일치하는 이름과 파일 확장자를 가진 파일 오브젝트를 찾기 위해 로컬 디렉토리를 스캔하는 것입니다. 내 머리 꼭대기에있는 예제 코드를 유감스럽게 생각합니다 (전화로 입력).

또한 URL이 잘못되면 오류가 발생하지 않도록 잘못된 URL 예외가 발생합니다. 그것을 던져서는 안됩니다 ... try {...} catch (MalformedURLException mex) {system.out.println (mex.getMessage())}; 대신.

+0

조작 된 메시지가 표시되면 콘솔에 메시지가 표시되지만 처음에는 메시지가 표시되지 않습니다. –

관련 문제