如果调用 Clip.start,Javasound Clip.isActive 应返回 true

问题描述 投票:0回答:1

据我了解,如果剪辑正在重新渲染或捕获音频,则

Clip.isActive
返回 true。
Clip.start
应开始播放声音,因此
clip.isActive
应在以下代码中返回 true。但是
"loop"
永远不会被打印出来。我尝试过使用
while(true)
循环,并且
Clip
播放得很好。难道我理解错了
Clip.isActive

AudioFileFormat fileFormat  
AudioInputStream stream;
try{
    fileFormat = AudioSystem.getAudioFileFormat(new File("Sound Files/Firion Battle.wav"));
    stream = AudioSystem.getAudioInputStream(new File("Sound Files/Firion Battle.wav"));
}catch(IOException | UnsupportedAudioFileException e){
    // exception handling omitted
}
Clip clip;
DataLine.Info info = new DataLine.Info(Clip.class, fileFormat.getFormat());
if (!AudioSystem.isLineSupported(info)){
    // error handling omitted
}
try{
    clip = (Clip)AudioSystem.getLine(info);
    clip.open(stream);
    clip.start();
    while(clip.isActive()){
        System.out.println("loop");// only here for debugging purposes
        // loops until clip stops playing
    }
}catch (LineUnavailableException | IOException e){
    // exception handling omitted
}
java javasound
1个回答
0
投票

我也是初学者,但我认为你应该做

isRunning
而不是
isActive

© www.soinside.com 2019 - 2024. All rights reserved.