从总长度中获取所需长度的片段:
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
答案 0 :(得分:1)
剪辑对于处理音频数据不是最有用的。我认为你必须将你的声音文件加载到一个字节数组中,然后再进行操作。
要听到它,您可以将原始音频数组包装在TargetDataLine实现中。 TDL实现为您提供了启动或停止的地方。
如果要保存切片文件,您可能知道使用AudioSystem.write()方法,该方法将AudioInputStream作为参数之一。对于这些写入,TDL可以包含在AIS中。
如果有更简单的方法,我很期待阅读它!
答案 1 :(得分:-1)
许多音频编辑工具都可以做这种事情。试试goldwave。