问题标签 [javax.sound.sampled]

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 投票
1 回答
122 浏览

java - 使用 Java 采样调整声音的频率

在 java 包中采样 - 使用方法 play 我想创建垂直滑块,它可以提高和降低一些预定义声音的频率。谁能指出我正确的方向?

0 投票
1 回答
763 浏览

java - 使用 BufferedInputStream 从服务器读取音频

AudioInputStreamURLConnectionvia得到一个javax.sound.sampled.AudioSystem.getAudioInputStream()。将 a 传递URL给 getAudioInputStream() 函数时,一切正常。但是,为了防止阻塞,我使用 aURLConnection来获取输入流,以便我可以设置 a timeout。由于AudioInputStream需要将流标记为支持和可重置,因此我将URLConnection输入流包装在BufferedInputStream.

BufferedInputStream在流中(由 提供的)单个歌曲的末尾使用 , 时Icecast,AudioInputStream.read() 方法会引发ArrayIndexOutOfBounds异常。并非每首歌曲都始终如一地发生,而是随机出现。

这是堆栈跟踪:

我想知道, 的什么潜在属性BufferedInputStream会导致这种不一致的行为?毕竟, aBufferedInputStream扩展了 anInputStream并且应该在外部表现相同。

我在没有设置URLConnection超时的情况下对此进行了测试,并且错误仍然存​​在,但是当我切换回将其URL直接传递给getAudioInputStream()函数时,它就可以工作了。

*我正在使用TritonusJLayer

编辑:我不能提供所有的代码,因为这个类非常大。这是相关的代码。

和读取(af 是存储音频信息并声明的自定义类的实例AudioInputStream

*如果您想知道,我这样设置读取循环是有原因的(在 while 循环中使用 if 语句)。

read_allocation() 所在库的源代码:https ://github.com/libgdx/jlayer-gdx/blob/master/src/javazoom/jl/decoder/LayerIDecoder.java

0 投票
0 回答
137 浏览

java - 在java上采样麦克风时CPU使用率高?

我正在玩麦克风来采样例如我的声音。为此,我使用 javax.sound.sampled 包。

但是,仅对麦克风进行采样时,我的 CPU 使用率非常高。该代码可在此处获得:

在 main 中执行的唯一代码如下:

我使用 System.err 来调试 CPU 使用率值,这给了我类似的东西:

这意味着代码大部分时间都在 line.read 调用中使用。

同时 top 为 java 返回 120% 的 CPU 时间。

我发现这种高 CPU 使用率太昂贵了。在我看来,代码将在 while(true) 循环中主动寻找数据。我错了吗 ?我应该如何更改我的代码?

编辑 :

我在读取数据之前添加了一个等待:

我现在的 CPU 使用率 <5%,大部分时间都花在等待循环而不是 read() 上。它确认 read() 包含一个活动循环。

0 投票
0 回答
187 浏览

java - 试图静音采样的声音

我在添加 MUTE 控件时遇到问题。

原谅我,我是初学者。

该行muteControl = (BooleanControl) audioClip.getControl(BooleanControl.Type.MUTE); 不断给我一个“IlligalArgumentException:不支持的控制类型:静音”

我也尝试过使用 MASTER_GAIN 控件,它给了我“”IlligalArgumentException:不支持的控件类型:MASTER_GAIN”

0 投票
2 回答
21605 浏览

java - 如何在java中计算音频信号的电平/幅度/db?

我想在 java 中为麦克风创建一个音频电平表,以检查输入的音量。它应该看起来像操作系统之一。我不是在问gui。它只是从产生的字节流中计算音频电平

所以我已经有一些正在运行的东西,但它甚至不接近我的操作系统(windows)的电平表它卡在中间。我的值介于 0 到 100 之间,这很好,但在中等音量下,无论输入多么响亮,它都会停留在 60 左右。

我现在是这样计算的:

有没有更好/更精确的方法来计算音频电平来监控它?还是我可能犯了一个重大错误?

那是我的音频格式:

0 投票
1 回答
545 浏览

java - java SourceDataLine 正弦波点击次数

我想使用 javax.sound.sampled.SourceDataLine 生成纯正弦波。对于一个恒定的频率,它工作得很好,但是在改变频率时总是有一种咔哒声。我做错了什么,我能做些什么来避免这种情况?

在哪里

0 投票
2 回答
13622 浏览

java - 如何使用 Java Sound 中的音频样本数据?

这个问题通常作为另一个问题的一部分被问到,但事实证明答案很长。我决定在这里回答它,以便我可以在其他地方链接到它。

虽然我目前不知道 Java 可以为我们生成音频样本的方式,但如果将来发生变化,这可能是它的一个地方。我知道JavaFX有一些类似的东西,例如AudioSpectrumListener,但仍然不是直接访问示例的方法。


我正在javax.sound.sampled用于播放和/或录制,但我想对音频做点什么。

也许我想直观地显示它或以某种方式处理它。

如何使用 Java Sound 访问音频样本数据?

也可以看看:

0 投票
1 回答
301 浏览

java - libGDX 和 javax.sound 冲突?和缩放问题

一直在开发一些游戏,2 2D,1 3D 游戏和 1 android 应用程序(主要是副项目)我已经喜欢 libgdx,因为它可以通过 java 为 android 和计算机构建游戏的灵活性,但是我有一个问题碰到了。当游戏导出到 .jar 或 .apk 时,它拒绝播放音频....但是如果我只是通过 intellij 运行它,音频工作得很好,所以我会假设 libgdx 声音引擎在导出时出现错误,所以我使用我的平台游戏的声音引擎,它会吐出错误......我从 intellij 导出到一个工作的 .jar 文件是通过 eclipse 导出游戏,因为 intellij 没有预先构建 metainf......
所以问题是:
1)是有没有用默认的 libGDX 声音功能导出它的秘密方法?
没有音乐盒的 MainClass


2)有没有办法让这个音乐盒代码与 libjdx 一起工作而不会吐出错误?
音乐盒.java


MainClass.java:122 与音乐盒


它吐出的错误:


3)最后一个让我烦恼但不如声音的问题是,当游戏被推送到 android 时,一切都被缩小而不是全屏显示为 1920x1080,就像所有东西都锁定在 1280x720,有没有使固定?(同样不那么重要)

0 投票
2 回答
2099 浏览

java - 尝试在 Java 中播放声音:NullPointerException

我正在尝试在 Java 中播放声音,但它不起作用并且我收到错误消息。这是我的代码

我收到此错误消息,然后我在这里没有任何声音!如何解决这个问题?

参考播放声音

0 投票
0 回答
75 浏览

java - 记录并听取来自 udp 套接字的数据

我正在开发一个带有录音功能的软电话(我正在使用mjsip库)

  1. 如果它只使用 javax.sound.* 听到它的工作正常
  2. 如果将传入的数据写入文件,它也可以工作。

但是我尝试同时使用两个线程来做这两个,声音被扭曲了。就像声音变得更快

有人可以帮忙吗?