下面列出了javax.sound.sampled.Clip#stop ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static void test() throws Exception {
// Will run the test no more than 15 seconds
long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
while (failed == null && endtime - System.nanoTime() > 0) {
Clip clip = createClip();
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.stop();
if (clip.isRunning()) {
if (clip.isRunning()) {
throw new RuntimeException("Clip is running");
}
}
if (clip.isActive()) {
if (clip.isActive()) {
throw new RuntimeException("Clip is active");
}
}
clip.close();
}
}
private static void test() throws Exception {
// Will run the test no more than 15 seconds
long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
while (failed == null && endtime - System.nanoTime() > 0) {
Clip clip = createClip();
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.stop();
if (clip.isRunning()) {
if (clip.isRunning()) {
throw new RuntimeException("Clip is running");
}
}
if (clip.isActive()) {
if (clip.isActive()) {
throw new RuntimeException("Clip is active");
}
}
clip.close();
}
}
private static void test() throws Exception {
// Will run the test no more than 15 seconds
long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
while (failed == null && endtime - System.nanoTime() > 0) {
Clip clip = createClip();
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.stop();
if (clip.isRunning()) {
if (clip.isRunning()) {
throw new RuntimeException("Clip is running");
}
}
if (clip.isActive()) {
if (clip.isActive()) {
throw new RuntimeException("Clip is active");
}
}
clip.close();
}
}
/**
* Destroys the MultiClip and releases all resources.
*/
public void destroy() {
if (clips.size() > 0) {
for (Clip c : clips) {
c.stop();
c.flush();
c.close();
}
extraClips -= clips.size() - 1;
clips = new LinkedList<Clip>();
}
audioData = null;
if (audioIn != null) {
try {
audioIn.close();
} catch (IOException e) {
softErr(e, "Failed to close MultiClip %s", name);
}
}
}
private static void test() throws Exception {
// Will run the test no more than 15 seconds
long endtime = System.nanoTime() + TimeUnit.SECONDS.toNanos(15);
while (failed == null && endtime - System.nanoTime() > 0) {
Clip clip = createClip();
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.stop();
if (clip.isRunning()) {
if (clip.isRunning()) {
throw new RuntimeException("Clip is running");
}
}
if (clip.isActive()) {
if (clip.isActive()) {
throw new RuntimeException("Clip is active");
}
}
clip.close();
}
}
/**
* Destroys the MultiClip and releases all resources.
*/
public void destroy() {
if (clips.size() > 0) {
for (Clip c : clips) {
c.stop();
c.flush();
c.close();
}
extraClips -= clips.size() - 1;
clips = new LinkedList<Clip>();
}
audioData = null;
if (audioIn != null) {
try {
audioIn.close();
} catch (IOException e) {
ErrorHandler.error(String.format("Could not close AudioInputStream for MultiClip %s.", name), e, true);
}
}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}
private void doTest() throws AssetException, InterruptedException
{
Clip clip = Assets.load("cowbell.wav");
assertNotNull( clip );
clip.start();
Thread.sleep(1000);
clip.stop();
clip.close();
}
public static void main(String args[]) throws Exception {
boolean res = true;
try {
AudioInputStream ais = new AudioInputStream(
new ByteArrayInputStream(new byte[2000]),
new AudioFormat(8000.0f, 8, 1, false, false), 2000); //
AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format,
((int) ais.getFrameLength()
* format
.getFrameSize()));
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open();
FloatControl rateControl = (FloatControl) clip.getControl(
FloatControl.Type.SAMPLE_RATE);
int c = 0;
while (c++ < 10) {
clip.stop();
clip.setFramePosition(0);
clip.start();
for (float frq = 22000; frq < 44100; frq = frq + 100) {
try {
Thread.currentThread().sleep(20);
} catch (Exception e) {
break;
}
rateControl.setValue(frq);
}
}
} catch (Exception ex) {
ex.printStackTrace();
res = ex.getMessage().indexOf(
"This method should not have been invoked!") < 0;
}
if (res) {
System.out.println("Test passed");
} else {
System.out.println("Test failed");
throw new Exception("Test failed");
}
}
public static void play(Mixer mixer) {
int res = 0;
try {
println("Getting clip from mixer...");
source = (Clip) mixer.getLine(info);
println("Opening clip...");
source.open(audioFormat, audioData, 0, audioData.length);
println("Starting clip...");
source.loop(Clip.LOOP_CONTINUOUSLY);
println("Now open your ears:");
println("- if you hear a sine wave playing,");
println(" listen carefully if you can hear clicks.");
println(" If no, the bug is fixed.");
println("- if you don't hear anything, it's possible");
println(" that this mixer is not connected to an ");
println(" amplifier, or that its volume is set to 0");
key();
} catch (IllegalArgumentException iae) {
println("IllegalArgumentException: "+iae.getMessage());
println("Sound device cannot handle this audio format.");
println("ERROR: Test environment not correctly set up.");
if (source!=null) {
source.close();
source = null;
}
return;
} catch (LineUnavailableException lue) {
println("LineUnavailableException: "+lue.getMessage());
println("This is normal for some mixers.");
} catch (Exception e) {
println("Unexpected Exception: "+e.toString());
}
if (source != null) {
println("Stopping...");
source.stop();
println("Closing...");
source.close();
println("Closed.");
source = null;
}
}
private static boolean doMixerClip(Mixer mixer, AudioFormat format) {
if (mixer==null) return false;
try {
System.out.println("Trying mixer "+mixer+":");
DataLine.Info info = new DataLine.Info(
Clip.class,
format,
(int) samplerate);
Clip clip = (Clip) mixer.getLine(info);
System.out.println(" - got clip: "+clip);
System.out.println(" - open with format "+format);
clip.open(format, buffer, 0, buffer.length);
System.out.println(" - playing...");
clip.start();
System.out.println(" - waiting while it's active...");
while (clip.isActive())
Thread.sleep(100);
System.out.println(" - waiting 100millis");
Thread.sleep(100);
System.out.println(" - drain1");
clip.drain();
System.out.println(" - drain2");
clip.drain();
System.out.println(" - stop");
clip.stop();
System.out.println(" - close");
clip.close();
System.out.println(" - closed");
} catch (Throwable t) {
System.out.println(" - Caught exception. Not failed.");
System.out.println(" - "+t.toString());
return false;
}
return true;
}
/**
* Playback
* @param name Registered name
*/
public void play(String name) {
Clip clip = clipMap.get(name);
if(clip != null) {
// Stop
clip.stop();
// Playback position back to the beginning
clip.setFramePosition(0);
// Playback
clip.start();
}
}
/**
* Stop
* @param name Registered name
*/
public void stop(String name) {
Clip clip = clipMap.get(name);
if(clip != null) {
clip.stop();
}
}
public void update(LineEvent event) {
// If you stop playback or to the end
if(event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // Playback position back to the beginning
}
}
/**
* Stops the clip, if active.
*/
public void stop() {
try {
Clip clip = getClip();
if (clip == null)
return;
if (clip.isActive())
clip.stop();
} catch (LineUnavailableException e) {}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}
public void update(LineEvent event) {
// �X�g�b�v���Ō�܂ōĐ����ꂽ�ꍇ
if (event.getType() == LineEvent.Type.STOP) {
Clip clip = (Clip) event.getSource();
clip.stop();
clip.setFramePosition(0); // �Đ��ʒu���ŏ��ɖ߂�
}
}