gpt4 book ai didi

java - 通过 TargetDataLine 传输实时音频

转载 作者:行者123 更新时间:2023-11-30 04:08:10 25 4
gpt4 key购买 nike

所以,我已经在一个宠物项目上工作了一段时间,我终于让它一切正常......主要是。我的项目代码已经出现在 JAVA audio data streaming 0s (请原谅我忘记启动我的 TargetDataLine xp)。我的问题更具理论性,可能会受到诸如“使用较低级别的语言”之类的答案的影响,但我很好奇是否有办法在 Java 中做到这一点。按照我的代码设置同步的方式,音频数据的读/写之间存在延迟,该延迟随缓冲区大小的变化而变化,我想知道是否有一种方法可以流式传输音频数据音频(最好来自 TargetDataLine)具有最小的延迟,以便可以识别地播放歌曲或其他相对高质量的声音。我的逻辑是:

while (Stream.RENDERING_BUFFER.isOpen()) {
int readLength = Stream.PROCESSING_BUFFER.read(Stream.READ_BUFFER, 0, Stream.BUFFER_SIZE);
Stream.RENDERING_BUFFER.write(Stream.READ_BUFFER, 0, readLength);
}

谢谢!

最佳答案

SourceDataLine 的级别相当低。它依赖于 Java 所支持的每个操作系统的 native 代码实现。

减少延迟的主要方法是减小缓冲区。

还有其他与 Java 音频和“实时”保证相关的问题。您可能会对这篇文章感兴趣: Real-Time Low Latency Audio Processing in Java .

关于java - 通过 TargetDataLine 传输实时音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20258513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com