2016-05-20 4 views
0

私は、クリックすると音を出すはずのアプレットを持っていますが、動作しません。誰かがコードアプレットがオーディオクリップを再生しないのはなぜですか?

AudioClip soundFile1; 
AudioClip soundFile2; 

public void init() 
{ 
     soundFile1 = getAudioClip(getDocumentBase(),"volcanoe.au"); 
     soundFile2 = getAudioClip(getDocumentBase(),"volcanoe.au"); 
     addMouseListener(this); 
     setBackground(Color.yellow); 
     soundFile1.play(); 
} 

public void paint(Graphics g) 
{ 
     g.drawString("Click to hear a sound",20,20); 
} 
public void mouseClicked(MouseEvent evt) 
{ 
     soundFile2.play(); 
} 
public void mousePressed(MouseEvent evt) {} 
public void mouseReleased(MouseEvent evt) {} 
public void mouseEntered(MouseEvent evt) {} 
public void mouseExited(MouseEvent evt) {} 
+0

サウンドを 'javax.sound.sampled.Clip'に読み込みます。有用なエラー情報が表示されますが、' getAudioClip'は通常そうではありません。なぜアプレットをコーディングするのですか?教師がそれを指定している場合は、[CS教師が** Javaアプレットを教えるのを止めるべき理由](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-teaching-java-applets /)を使用します。 –

答えて

1

私のコンピュータでコードを実行したところ、完全に機能しました。 soundFile1に格納されたオーディオクリップは、アプレットが実行されたときに、マウスがクリックされたときに、すでに停止を遊んでいたオーディオとsoundFile2の新しいオーディオクリップの再生開始再生を開始します。私はこのプログラムを.wav.auというファイルでテストしました。あなたの場合の問題点は、次のいずれかであるかもしれない:

  1. オーディオファイルは、アプレットのの.classファイルがあるディレクトリから欠落しています。オーディオファイルは、作業中の現在のプロジェクトのディレクトリに存在する必要があります。

  2. カレントディレクトリに存在するの.auファイルに何か問題があります。他のファイル形式(例:.wav)または別の.auファイルでアプレットをテストします。

  3. 何かがコンピュータのオーディオコーデックと間違っています。あなたのオーディオコーデックを修正するためにインターネットを見てください。

  4. JDKを再インストールしてください。 @Tbtimberは、getDocumentBase()の代わりにgetCodeBase()を使用しています。動作する場合は、JDKを更新/再インストールしてください。

0

あなたがたAudioClipを作成するときに代わりにgetDocumentBase()getCodeBase()を使用してみてくださいと間違っているものを指摘することができれば、それは本当に参考になります。

関連する問題