问题标签 [javasound]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1504 浏览

java - 将 44100hz、16 位单声道 wav 文件的集合转换和分段为 16kHz、16 位单声道 wav 文件

我需要将大量 wav 文件分解成更小的片段,并将它们转换为 16 khz、16 位单声道 wav 文件。为了分割 wav 文件,我WavFile从以下站点下载了一个类:WavFile Class。我对其进行了一些调整,以允许跳过任意数量的帧。使用该类,我创建了一个WavSegmenter可以读取源 wav 文件的类,并将时间 x 和时间 y 之间的帧复制到新的 wav 文件中。我可以从提供的 XML 文件中获取开始时间和结束时间,并且可以使用sample rate * time. 我的问题是我不知道如何将采样率从 44,100 转换为 16,000。

目前,我正在为此研究 Java 的 Sound API。我最初没有查阅它,因为我发现指南很长,但如果它是现有的最佳选择,我愿意通过它。不过,我仍然想知道是否有其他方法可以做到这一点。最后,我想知道我是否应该完全适应Java的Sound API,并放弃WavFile我目前使用的类。对我来说,它看起来不错,但我想确定一下。

非常感谢您抽出宝贵的时间。

0 投票
4 回答
5735 浏览

java - 如何使用 Java 仅从线路输入端口录制声音

我需要从线路输入端口而不是麦克风捕获声音。

虽然我完成了从麦克风录音,但我无法完成从线路输入端口或特定端口捕获声音。我该如何处理这个问题?

0 投票
2 回答
6512 浏览

java - 了解 AudioFormat 、 AudioInputStream 和 start 方法的构造函数

我曾尝试编写播放声音文件的程序,但到目前为止还没有成功。我无法理解代码的某些部分:

  • 在构造函数中AudioFormat我怎么能提前知道采样率、文件大小、通道是什么、到底是2个布尔变量?
  • 如何获得样本帧( length)的值?
  • 另外我如何调用 start 方法?我不想要任何行的数据,而是保存在文件夹中的文件(即剪辑)
0 投票
3 回答
2485 浏览

java - 为什么这段代码不播放声音文件

编码

此代码确实使输出声音线程正常工作,但不播放任何内容。在这段代码中,我已经启动了一个单独的线程来播放声音,并且在声音线程完成它的工作之前程序不应该终止。但是程序在打印一系列声音线程工作后终止。

这是什么原因(程序终止且声音未播放)

0 投票
1 回答
1222 浏览

java - 为什么我在尝试播放 mp3 文件时会出现这些异常?

我下载了JMF MP3 插件以在我的 java 程序中播放 mp3 文件。我mp3plugin.jar与 JDK 一起包含在我的 netbeans 项目库中。但我仍然无法播放 mp3 文件。当我运行我的代码时,我得到以下异常:

这是我为播放 MP3 文件而编写的代码

}

为什么我会得到这些异常?是不是代码有问题。

0 投票
2 回答
13490 浏览

java - 无法导入 javax.media.*;(包不存在)为什么会这样说?

我已经下载了JMF MP3 PLUGIN来播放 mp3 文件。下载后我mp3plugin.jar放入netbeans的项目库中。

然后我从以下行开始代码: import javax.media.*;

但是有一个与此语句相对应的错误,它说包javax.media不存在。为什么我会收到此错误?我已经尝试搜索它,但没有找到解决方案。请帮助我。我也放在C:\Program Files\Java\jdk1.7.0\jre\lib\ext\mp3plugin.jar了类路径变量中。

0 投票
2 回答
5206 浏览

java - 为什么我得到 java.lang.IllegalArgumentException: 没有行匹配接口 SourceDataLine 支持格式 MPEG1L3 44100.0 ....

我已经设置了我的 netbeans 项目所需的运行时库。但是当我尝试播放 mp3 文件时mp3plugin.jar仍然得到上述内容。这是什么原因:exception

}

当我运行这个程序时,我得到以下异常:

我收到此错误的原因是什么?

0 投票
3 回答
9475 浏览

java - 在人群区域录制音频时,如何使用 java 去除背景噪音?

当我使用 JavaSound 或第三方声音捕获工具进行捕获并将其记录到文件中时。之后读回文件进行修改,有没有办法用我的java应用程序去除“背景噪音”。

例如主要人物说话时的道路交通/空气噪音?

谢谢

0 投票
1 回答
1099 浏览

java - 在 xuggler 中转发和倒带音频

我曾经xuggler播放过.以外的音频文件wav,au,aiff。由于xuggler在低级别执行音频解码,因此很难编写一个既可以向前也可以向后播放正在播放的音频的方法。(解码时xuggler分析每个数据包然后发送播放)

一种方法是一次读取一堆数据包,然后发送下一个数据包播放。这样可以感受到转发音频的效果。But i don't know how to implement this method此外,这不是我可以转发数据的最佳方式。

是否有任何直接的方法来转发和倒带音频?如果不直接是什么算法,这个步骤怎么做?

0 投票
2 回答
21384 浏览

java - Java 从 MIDI 键盘获取输入

我用 java 设计了自己的合成器,现在我想用 MIDI 键盘连接它。我下面的班级搜索所有具有发射器的 MIDI 设备。它成功地找到了我的 MIDI 键盘。我将自己的接收器添加到每个设备的每个发射器,以便它可以接收所有可能的信息。通过阅读所有帮助文档和 java 文档,我知道 Transmitter 将 MidiEvents 发送到 Receiver,然后使用 send 方法处理它们。所以我编写了自己的内部类来实现 Receiver 并使用 println 语句来检查 send 方法中是否检测到任何东西。然而,什么都没有被捡起。做这么简单的事情似乎没有什么帮助,我查看了每个帮助文件、javadoc 和论坛。我敢肯定,这一定是我以某种方式错过的非常明显的事情。

我的合成器不应该与界面合成器混淆,它不是一个 MIDI 乐器。它使用合成算法并具有播放方法。基本上我只需要让midi键盘发送一个将调用播放方法的事件的注释。

注意:我已经看过这个:Java MIDI - 从钢琴中获取数据?.

这个: http: //www.jsresources.org/examples/MidiInDump.html

界面 Sequencer 对于我想要的东西看起来也很复杂。