我想知道是否有一个库或某种东西可以在给定的采样率(20–20,000
Hz)下播放声音。实际上,我发现了一些东西,但是我不知道如何使它起作用!
这是一个完整的示例,不需要任何外部库:
import javax.sound.sampled.*;
public class SoundUtils {
public static float SAMPLE_RATE = 8000f;
public static void tone(int hz, int msecs)
throws LineUnavailableException
{
tone(hz, msecs, 1.0);
}
public static void tone(int hz, int msecs, double vol)
throws LineUnavailableException
{
byte[] buf = new byte[1];
AudioFormat af =
new AudioFormat(
SAMPLE_RATE, // sampleRate
8, // sampleSizeInBits
1, // channels
true, // signed
false); // bigEndian
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
for (int i=0; i < msecs*8; i++) {
double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
buf[0] = (byte)(Math.sin(angle) * 127.0 * vol);
sdl.write(buf,0,1);
}
sdl.drain();
sdl.stop();
sdl.close();
}
public static void main(String[] args) throws Exception {
SoundUtils.tone(1000,100);
Thread.sleep(1000);
SoundUtils.tone(100,1000);
Thread.sleep(1000);
SoundUtils.tone(5000,100);
Thread.sleep(1000);
SoundUtils.tone(400,500);
Thread.sleep(1000);
SoundUtils.tone(400,500, 0.2);
}
}
来源:http :
//www.rgagnon.com/javadetails/java-0499.html
我在许多论坛和YouTube教程中搜索了一些简单的代码来播放声音文件(.mp3),但我找到的所有内容都不适合我。 我总是收到异常,它找不到文件或其他错误,但它总是以异常结束。 有什么我必须先配置的吗? -编辑- 我再次尝试以下代码来显示我得到的解释: 这是我的代码 添加JFXPanel后,我得到了异常:线程“main”中的异常MEDIA Exception:MEDIA _ UNAVAILABLE
问题内容: 我希望能够在程序中播放声音文件。我应该去哪里看? 问题答案: 我写了下面的代码,效果很好。但我认为它仅适用于格式。
我希望能够在我的程序中播放声音文件。我应该去哪里?
问题内容: Octave似乎假设某个特定的声音播放实用程序将在系统上可用,但似乎没有提供指定备用声音的功能。在以下错误中,Octave正在寻找,这不是在所有系统上都可用的实用程序。 八度:38>声音(beamformed_20) sh:ofsndplay:找不到命令 是否可以使用Octave配置设置或代码片段来指定适合系统的实用程序? 问题答案: 在我的一台Linux机器上,我创建了以下ofsnd
问题内容: 我正在尝试将文本语音转换应用程序与其他开发人员共享,但是我现在遇到的问题是Docker容器无法在主机上找到声卡。 当我尝试在Docker容器中播放WAV文件时 我想主要的问题是docker容器无法到达主机上的声卡。 到目前为止,我有 我在docker容器中安装了alsa-utils和大多数alsa依赖项。 通过指定运行容器时 添加 我不确定docker是否可以做到这一点(我不确定如何将
这意味着一个平均值的概率是131%? 给定一个点,如何计算一个值的概率?这可能吗? 加上我的情况: 我理解在连续变量中,任何一点的概率都是0。 但是,我的用户问我100在我的数据中的概率是多少,我如何量化100?