gpt4 book ai didi

java - Java 中的声音 : Is it okay to use the same AudioInputStream for several Clips?

转载 作者:行者123 更新时间:2023-11-30 09:13:18 26 4
gpt4 key购买 nike

这是我写的一个小程序:

package learningSound;

import java.io.*;
import java.net.URL;
import javax.swing.*;
import javax.sound.sampled.*;

public class Main extends JFrame {

Clip clip1,clip2,clip3;
AudioInputStream audioIn;

public Main(){

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Test Sound Clip");
this.setSize(300, 200);
this.setVisible(true);

try{

URL url1 = this.getClass().getResource("ah.wav");
audioIn = AudioSystem.getAudioInputStream(url1);
clip1 = AudioSystem.getClip();
clip1.open(audioIn);

URL url2 = this.getClass().getResource("eh.wav");
audioIn = AudioSystem.getAudioInputStream(url2);
clip2 = AudioSystem.getClip();
clip2.open(audioIn);

URL url3 = this.getClass().getResource("ih.wav");
audioIn = AudioSystem.getAudioInputStream(url3);
clip3 = AudioSystem.getClip();
clip3.open(audioIn);

clip1.start();
clip2.start();
clip3.start();

}catch(Exception e){e.printStackTrace();}

}

public static void main(String[] args) {
new Main();
}
}

它有效,但我想知道对多个剪辑使用相同的 AudioInputStream 是否有问题。这是出于某种原因的问题吗?这是管理事物的正确方法吗?

此外,还有一个完全不同但很小的问题:如果我有一个按钮,单击该按钮会播放 Clip。剪辑播放的时间会 100% 准确吗? (这是为了音乐制作)。

最佳答案

当您调用静态方法 AudioSystem.getAudioInputStream() 时,您将从给定的 URI 获取音频输入流,只要该 URI 指向音频。这意味着您在代码中所做的实际上并没有使用相同的流。换句话说,你所做的是正确的。

至于问题的“第 2 部分”,我不确定您所说的剪辑时间是什么意思?你能稍微扩展一下吗?

关于java - Java 中的声音 : Is it okay to use the same AudioInputStream for several Clips?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com