1

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

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,无需数据转换(保持音频数据相同)但它的长度等于currentPos

即切割音频文件并将其大小减小到currentPos

4

2 回答 2

1

剪辑对于处理音频数据并不是最有用的。我认为您必须将声音文件加载到字节数组中并解决此问题。

要听到它,您可以将原始音频数组包装在 TargetDataLine 实现中。TDL 实现为您提供了随心所欲地开始或停止的挂钩。

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

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

于 2011-09-14T09:23:19.043 回答
-1

很多音频编辑工具都可以做这种事情。试试金波。

于 2011-09-14T00:00:56.850 回答