2011-09-17 8 views
0

これは、Javaサウンド情報ページから若干変更された例です。 https://stackoverflow.com/tags/javasound/info残念ながら、サウンドは1回しか再生されませんが、意図は2回再生されます。ClipとAudioInputStreamによるJavaサウンドの再生が機能しない

import java.io.File; 
import javax.sound.sampled.*; 

public class TestNoise { 
    public static void main(String[] args) throws Exception { 
     File f = new File("/home/brian/drip.wav"); 
     AudioInputStream ais = AudioSystem.getAudioInputStream(f); 

     AudioFormat af = ais.getFormat(); 
     DataLine.Info info = new DataLine.Info(Clip.class, af); 
     Clip clip = (Clip)AudioSystem.getLine(info); 

     clip.open(ais); 
     clip.start(); // heard this 
     Java.killTime(); 
     clip.start(); // NOT HEARD 
     Java.killTime(); 
    } 
} 

編集:答えを理解するために、ワンダーラストによって提供されたリンクを参照するか、またはちょうどそれが彼の答え以下のコメントで述べている何をすべきか。

+0

1)[JavaSound info]に表示されている正確なソースはありますか?あなたのためのWAV作品を再生するための[ページ](http://stackoverflow.com/tags/javasound/info)? 2)あなたのテストWAVsの正確なソース(URLを変更したものを除きます)が失敗しますか? –

+0

すぐに役立つように、[SSCCE](http://pscode.org/sscce.html)を投稿してください。 –

+1

@broiyan:あなたがSwingのvalidate質問を取り消すだけであれば、私は自由時間を無駄にしていましたか? Dulyは将来の参照のために述べた。 –

答えて

0

二度目のクリップの再生のためには)(clip.startの2回目の呼び出し後

clip.start(); 
clip.stop(); 

原因を呼び出す必要があります。 it stopped previouslyの場所からファイルを再生しようとしています。

+1

ありがとうございます。それにはclip.setFramePosition(0)が必要でした。それを適切に再生させる。 – H2ONaCl

関連する問題