问题标签 [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.
java - 使用 Java 采样调整声音的频率
在 java 包中采样 - 使用方法 play 我想创建垂直滑块,它可以提高和降低一些预定义声音的频率。谁能指出我正确的方向?
java - 使用 BufferedInputStream 从服务器读取音频
我AudioInputStream
从URLConnection
via得到一个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()
函数时,它就可以工作了。
*我正在使用Tritonus
和JLayer
。
编辑:我不能提供所有的代码,因为这个类非常大。这是相关的代码。
和读取(af 是存储音频信息并声明的自定义类的实例AudioInputStream
)
*如果您想知道,我这样设置读取循环是有原因的(在 while 循环中使用 if 语句)。
read_allocation() 所在库的源代码:https ://github.com/libgdx/jlayer-gdx/blob/master/src/javazoom/jl/decoder/LayerIDecoder.java
java - 在java上采样麦克风时CPU使用率高?
我正在玩麦克风来采样例如我的声音。为此,我使用 javax.sound.sampled 包。
但是,仅对麦克风进行采样时,我的 CPU 使用率非常高。该代码可在此处获得:
在 main 中执行的唯一代码如下:
我使用 System.err 来调试 CPU 使用率值,这给了我类似的东西:
这意味着代码大部分时间都在 line.read 调用中使用。
同时 top 为 java 返回 120% 的 CPU 时间。
我发现这种高 CPU 使用率太昂贵了。在我看来,代码将在 while(true) 循环中主动寻找数据。我错了吗 ?我应该如何更改我的代码?
编辑 :
我在读取数据之前添加了一个等待:
我现在的 CPU 使用率 <5%,大部分时间都花在等待循环而不是 read() 上。它确认 read() 包含一个活动循环。
java - 试图静音采样的声音
我在添加 MUTE 控件时遇到问题。
原谅我,我是初学者。
该行muteControl = (BooleanControl) audioClip.getControl(BooleanControl.Type.MUTE);
不断给我一个“IlligalArgumentException:不支持的控制类型:静音”
我也尝试过使用 MASTER_GAIN 控件,它给了我“”IlligalArgumentException:不支持的控件类型:MASTER_GAIN”
java - 如何在java中计算音频信号的电平/幅度/db?
我想在 java 中为麦克风创建一个音频电平表,以检查输入的音量。它应该看起来像操作系统之一。我不是在问gui。它只是从产生的字节流中计算音频电平
所以我已经有一些正在运行的东西,但它甚至不接近我的操作系统(windows)的电平表它卡在中间。我的值介于 0 到 100 之间,这很好,但在中等音量下,无论输入多么响亮,它都会停留在 60 左右。
我现在是这样计算的:
有没有更好/更精确的方法来计算音频电平来监控它?还是我可能犯了一个重大错误?
那是我的音频格式:
java - java SourceDataLine 正弦波点击次数
我想使用 javax.sound.sampled.SourceDataLine 生成纯正弦波。对于一个恒定的频率,它工作得很好,但是在改变频率时总是有一种咔哒声。我做错了什么,我能做些什么来避免这种情况?
在哪里
java - 如何使用 Java Sound 中的音频样本数据?
这个问题通常作为另一个问题的一部分被问到,但事实证明答案很长。我决定在这里回答它,以便我可以在其他地方链接到它。
虽然我目前不知道 Java 可以为我们生成音频样本的方式,但如果将来发生变化,这可能是它的一个地方。我知道JavaFX
有一些类似的东西,例如AudioSpectrumListener
,但仍然不是直接访问示例的方法。
我正在javax.sound.sampled
用于播放和/或录制,但我想对音频做点什么。
也许我想直观地显示它或以某种方式处理它。
如何使用 Java Sound 访问音频样本数据?
也可以看看:
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,有没有使固定?(同样不那么重要)
java - 记录并听取来自 udp 套接字的数据
我正在开发一个带有录音功能的软电话(我正在使用mjsip库)
- 如果它只使用 javax.sound.* 听到它的工作正常
- 如果将传入的数据写入文件,它也可以工作。
但是我尝试同时使用两个线程来做这两个,声音被扭曲了。就像声音变得更快
有人可以帮忙吗?