2011-11-26 30 views
0

私はJava AudioClipに関する以前の問題を読んで研究しましたが、まだこの理由が分かりません。 AudioClipが再生されません。 .wavクリップはEclipse IDEで正常に再生されますが、適切なディレクトリにもあります。ファイル が不正なディレクトリにある場合、このコードスニペットはエラーメッセージをスローします。私の教授は、我々はまた、このフォーマットを使用したAudioClipを果たしていることが求められJava AudioClip - 音が出ない、エラーが発生しない

下部のplayメソッドを実行すると、audioClip = Applet.newAudioClip(new File(filePath).toURI().toURL());

しかしNO SOUNDを起動したことはありません飽きません! ご協力いただければ幸いです。

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

*「NO SOUND!」と呼び出されます。*注意しないでください!単純な['leftright.wav'](http://pscode.org/media/#sound)でコードを試してください。あなたの宿題はこれがアプレットでなければならないと指定していますか? –

+0

うわー...左の.wav作品!だから私は別のタイプの.wavファイルを試しなければならないと思いますか? –

答えて

0

leftright.wavという単純なコードで試してみてください。

です。左いっぱいの作品です!

ほとんどのメディアフォーマット(サウンド、イメージ、ビデオなど)は、「コンテナフォーマット」と呼ばれるものです。メディアのエンコーディングは、任意の数のタイプにすることができます。 Javaはいくつかのエンコーディングを読み込みますが、他のエンコーディングは読み込まない。

だから私は別の種類の.wavファイルを試してみなければならないと思いますか?

アプリケーションリソースの場合は、現在のWAVをJavaサウンドと互換性のあるタイプに変換する傾向があります。

0

あなたのプログラムをビルドして実行すると、そのサウンドは再生されませんか? wavファイルをリソースフォルダに埋め込み、getResources()を使用してファイルを探します。または、別のオプションは、名前とファイル拡張子が一致するファイルオブジェクトを見つけるためにローカルディレクトリをスキャンすることです。私の頭の上からサンプルコードを残すことはできません(電話からの入力)。

また、URLが間違っているとエラーになることはありませんので、あなたは不正なURL例外をスローしています。あなたはそれを投げてはならない... try {...} catch(MalformedURLException mex){system.out.println(mex.getMessage())};代わりに。

+0

不正な形式のメッセージがスローされた場合は、コンソールにメッセージが表示されますが、最初はスローされませんでした。 –