【发布时间】:2014-11-23 06:30:49
【问题描述】:
你好 Stackoverflow!
所以基本上,我的 Java 程序中有两个音频剪辑正在进行,我希望其中一个在某个时间停止,另一个在某个时间开始。
我会尽力解释代码。 http://pastebin.com/1zGdb30xMusic.java
package testingground;
import java.io.IOException;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class Music {
public void musictwo() {
URL url;
try {
url = new URL("file:///D:/Yes/GUI/song.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(100);
} catch (UnsupportedAudioFileException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void musicone() {
URL url;
try {
url = new URL("file:///D:/Yes/GUI/rival.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.
getAudioInputStream( url );
clip.open(ais);
clip.loop(100);
} catch (UnsupportedAudioFileException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
http://pastebin.com/nGm4DZfrProgram.java
package testingground;
import javax.swing.JOptionPane;
public class Program {
public static void main(String[] args) {
System.out.println("The first song should play now!");
Music a = new Music();
a.musicone();
System.out.println("The second song should play now!");
a.musictwo();
JOptionPane.showMessageDialog(null,"Press 'ok' to end the application.");
}
}
在 Music.java 中,我可以使用音频文件,它们只是本地 .wav 文件,只能在我的计算机上使用。在 program.java 中,输出为 musicone 和 musictwo 同时播放。有没有办法让muscone播放,停止,然后musictwo播放?
我尝试过的事情- - 在 program.java 中有一个 if 和 else 语句来执行 clip.stop()。没有错误,它只是没有工作。 - 使用 program.java 中的 if 和 else 布尔值在 Music.java 中执行 clip.stop()。没有语法错误,只是没有用。
【问题讨论】: