制作一个没有数据转换但长度较短的新音频文件

时间:2011-09-13 17:43:00

标签: java audio javasound

从总长度中获取所需长度的片段:

Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream( new File( "file.wav") );
clip.open( ais );
long currentPos = clip.getMicrosecondPosition(); // get the current position of clip

完成这些步骤后,有没有办法让我可以组成一个新的audio file,而无需数据转换(保持音频数据相同),但它的长度等于{{1} }?

即切断音频文件并将其大小缩小为currentPos

2 个答案:

答案 0 :(得分:1)

剪辑对于处理音频数据不是最有用的。我认为你必须将你的声音文件加载到一个字节数组中,然后再进行操作。

要听到它,您可以将原始音频数组包装在TargetDataLine实现中。 TDL实现为您提供了启动或停止的地方。

如果要保存切片文件,您可能知道使用AudioSystem.write()方法,该方法将AudioInputStream作为参数之一。对于这些写入,TDL可以包含在AIS中。

如果有更简单的方法,我很期待阅读它!

答案 1 :(得分:-1)

许多音频编辑工具都可以做这种事情。试试goldwave。