gpt4 book ai didi

JAVA:控制音频输入流的音量

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:43 25 4
gpt4 key购买 nike

我在java代码中使用了一个wav文件,我使用AudioInputStream ais = AudioSystem.getAudioInputStream("file.wav")将其加载到AudioInputStream中

完成此操作后,我希望基本上在最后拾取 n 秒(比方说最后 5 秒)并“淡出”音量(FloatControl.Type.MASTER_GAIN?)。

完成后,我可以使用以下方法将音频流输入传输回 wav 文件:AudioSystem.write(ais, Type.WAVE, file_output);

结果是相同的 wav 文件,但最后 5 秒逐渐淡出(音量减小)。

知道如何做到这一点吗?我尝试将 ais 更改为 bytes[] 或 sourcedataline...但没有找到我想要的,因为大多数示例都是关于更改“播放中”音频的音量(我还看到了使用 Clip 的情况,它似乎也在处理播放中的音频文件)

非常感谢大家

最佳答案

首先将声音转换为字节数组。然后将字节转换为示例:您需要专门为此找到一个教程,它涉及一些 Java(http://www.jsresources.org/ 是一个很好的资源)。样本是声波的直接表示。

要减少体积,请将所有样本乘以小于 1 的值,然后将它们保存回字节数组。要淡出,您需要将最后 n 个样本乘以递减函数。然后用正确的 WAV header 写出该文件。

这些只是复杂过程的一些提示,希望它们能为您指明正确的方向。

关于JAVA:控制音频输入流的音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571243/

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