问题标签 [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 回答
2350 浏览

java - How can I decode OGG vorbis data from a ByteBuffer?

The libraries I founded so far only have methods to decode from a file or InputStream. I have a ByteBuffer with OGG vorbis data and I need it decoded to PCM without having to write it to a file first.

0 投票
3 回答
648 浏览

java - 捕获声卡数据的 Java 线程的问题

我有一个程序创建一个线程,该线程以 48 KHz 从声卡捕获数据并将其写入缓冲区以进行收集。核心线程代码如下..

该程序可以正常工作,只是该进程似乎占用了 100% 的 CPU 时间。我认为这是因为线程正在等待数据到达 Line.Read 行。我尝试在线程的各个点插入 Thread.yield() ,但似乎没有什么区别。

谁能建议我可以减少该线程占用的 CPU 时间的方法?

谢谢你的时间

伊恩

0 投票
1 回答
2548 浏览

java - 反向播放,java

我确实需要你的帮助。如何调整以下代码以向后播放 .wav 文件?

任何帮助将不胜感激..谢谢。卡洛斯

0 投票
3 回答
1609 浏览

java - 预加载 SourceDataLine 以减少延迟

我在java中有一个纸牌游戏。每当我将鼠标悬停在卡上时,我都想播放声音效果。但与此同时,卡片也会“弹出”。

但是,当我尝试通过 run() 方法实现它时,它变得迟钝,也就是说,卡片不会像没有声音那样快速弹出。

因此我创建了另一种名为run(int effect)and的方法reloadLine(SourceDataLine line, int effect)

reloadLine(line,effect)类似于run(),只是我删除了最后的drain()andclose()并将其移至run(int effect).

下面是我的 SoundEffects.java 类:

这个想法是为预加载 .wav 文件的类提供两个 SourceDataLine 属性。

问题是有轻微的滞后

0 投票
2 回答
522 浏览

java - 将 Vorbis SPI 依赖项添加到 Maven 项目

我希望能够使用 JavaSound 播放 ogg 编码的文件。我认为最简单的方法是将依赖项添加到 Vorbis SPI 并像常规波形文件一样播放它。但是,我的项目是使用 maven 管理的,但 vorbis spi 在公共存储库中不可用。

将此依赖项添加到我的项目的最简单方法是什么?是否存在某种非官方维护的 Maven 存储库,其中 vorbis spi 工件确实存在?

0 投票
1 回答
405 浏览

java - 甲骨文Java的格维尔?

据说 Gervill是为开源 JDK 创建的,但它与 Oracle Java 兼容吗?

0 投票
3 回答
3552 浏览

java - 使用 Java Sound API 进行多通道 USB 录音?

我正在尝试使用 Snow Leopard 上的 Java Sound 录制/处理来自三个 USB 麦克风的一些音频(但如果它修复了问题,可以切换到 Windows)。问题是,当我尝试使用与 USB 麦克风对应的混音器时,Java Sound 告诉我该线路不受支持。具体来说,它说...

可用的混音器:

Java 声音音频引擎

USBMIC 序列号#041270067

内置输入内置麦克风

音花 (2ch)

音花 (16ch)

线程“AWT-EventQueue-0”java.lang.IllegalArgumentException 中的异常:不支持行:接口 TargetDataLine 支持格式 PCM_SIGNED 96000.0 Hz,8 位,立体声,2 字节/帧,

...当我要求它选择 USBMIC 混音器时:

我尝试将音频格式与麦克风的确切规格(16 位、44100Hz、立体声)相匹配,但没有任何区别。

问题出现在这里:

看起来混音器和 TargetDataLine 彼此不喜欢。有没有办法让这两者“匹配”并相处融洽?

我使用的麦克风确实有点奇怪。它们被用于名为 SingStar 的卡拉 OK 视频游戏中。麦克风本身具有标准的单声道输入连接器,可插入一个小集线器(两个到一个集线器),将它们转换为单个公 USB 连接器。不过,除了奇怪之外,它们似乎与 Audacity 作为单独的通道一起工作得很好,所以用它们进行多通道录制显然是可能的,只是在 Java 中可能不行。

我还考虑过使用像 Soundflower 这样的程序来在不同程序之间共享音频。但是,我不确定这是否可行,因为我看不到如何将 USB 麦克风输入到 Soundflower,然后将它们通过管道传输到 Java 中。一个快速的实验告诉我,我可以在 Audacity 中从麦克风录制音频,通过 Soundflower 将其输出,然后在我的 Java 程序中进行处理。不过,我想做的是让这一切都在 Java 中实时发生。

有人熟悉这种问题吗?

0 投票
1 回答
366 浏览

java - 使用 JavaSound API 以非独占模式捕获音频

我编写了一些代码来使用 JavaSound API 捕获声音。
它是这样开始的:

但是,一旦调用getLine(),其他应用程序就不能再开始捕获声音了。

反过来,如果其他一些声音捕获应用程序正在运行,getLine()将失败。

通常我可以在 Skype 会话期间使用录音机,这意味着捕获声音不必是专有的。

我希望我的应用程序也是非排他性的。我不想限制用户可以用它做什么。

JavaSound API 教程中它写道:

通常,一次只能打开一个输入端口,但也可以使用混合来自多个端口的音频的音频输入混音器。

这是否意味着 JavaSound 只能以独占模式捕获,或者 JavaSound 本身只能处理一个输入端口?

如果前者是真的,那么有人知道如何在 Java 中解决这个问题吗?

0 投票
3 回答
2262 浏览

android - 在android中播放特定频率的声音

我想根据用户输入在 android 中播放特定频率的声音,有点类似于吉他应用程序。谁能告诉我该怎么做?我需要在 res\raw 文件夹中包含所有频率声音吗?

0 投票
2 回答
1007 浏览

java - 谁能告诉我为什么我的音量控制不起作用?

谁能告诉我为什么我的音量控制不起作用...?