当前位置: 首页 > 面试题库 >

切割波形文件

谭琛
2023-03-14
问题内容

如何.wave使用Java 剪切文件?

我想要的是:

当用户按下标cut有按钮的按钮时,应将音频从前一个mark(以纳秒为单位)剪切到当前位置(以纳秒为单位)。
(在剪切声音后,标记被定位到当前位置(以纳秒为单位)) 当我获得一段音频后,我想保存该段音频文件。

// obtain an audio stream 
long mark = 0; // initially set to zero
//get the current position in nanoseconds
// after that how to proceed ?
// another method ?

我怎样才能做到这一点 ?


问题答案:

最初由Martin Dow回答

import java.io.*;
import javax.sound.sampled.*;

class AudioFileProcessor {

public static void main(String[] args) {
  copyAudio("/tmp/uke.wav", "/tmp/uke-shortened.wav", 2, 1);
}

public static void copyAudio(String sourceFileName, String destinationFileName, int startSecond, int secondsToCopy) {
AudioInputStream inputStream = null;
AudioInputStream shortenedStream = null;
try {
  File file = new File(sourceFileName);
  AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(file);
  AudioFormat format = fileFormat.getFormat();
  inputStream = AudioSystem.getAudioInputStream(file);
  int bytesPerSecond = format.getFrameSize() * (int)format.getFrameRate();
  inputStream.skip(startSecond * bytesPerSecond);
  long framesOfAudioToCopy = secondsToCopy * (int)format.getFrameRate();
  shortenedStream = new AudioInputStream(inputStream, format, framesOfAudioToCopy);
  File destinationFile = new File(destinationFileName);
  AudioSystem.write(shortenedStream, fileFormat.getType(), destinationFile);
} catch (Exception e) {
  println(e);
} finally {
  if (inputStream != null) try { inputStream.close(); } catch (Exception e) { println(e); }
  if (shortenedStream != null) try { shortenedStream.close(); } catch (Exception e) { println(e); }
 }
}

}



 类似资料:
  • Make the output cycles over time. 用法 The PULSE node’s output changes with the time according to the waveform specified in the config panel. It can be used to: Make a “breathing” light/sound/movement e

  • 本文向大家介绍java读取wav文件(波形文件)并绘制波形图的方法,包括了java读取wav文件(波形文件)并绘制波形图的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法。分享给大家供大家参考。具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将这部分(波形文件的读写)代码开源

  • 本节,我们将使用在画布上下文对象的transform()方法中已经学过的知识,来创建一个自定义的切割变换,使画布上下文在水平方向上发生倾斜。 图4-8 切割画布上下文 绘制步骤 按照以下步骤,绘制一个被切割的矩形: 1. 定义画布上下文及矩形尺寸: window.onload = function(){ var canvas  = document.getElementById("myCan

  • 本文向大家介绍使用Python读写WAV文件(波形),包括了使用Python读写WAV文件(波形)的使用技巧和注意事项,需要的朋友参考一下 Python标准库中的wave模块是音频WAV格式的便捷接口。该模块中的功能可以将原始格式的音频数据写入对象之类的文件,并读取WAV文件的属性。 如同内置方法一样,文件以“写入”或读取模式打开,但具有wave模块中的功能 wave.open() 此功能打开一个

  • 问题内容: 我已经尝试“剪切”图像一段时间了,我将解释原因和尝试之处。所以我想创建一个hp“ bar”,除了它不是一个bar,而是一个心,所以我要做的只是将两张图片相互画在上面,然后只剪一张就可以了。好像在hp中丢失了一样,但是我无法找到削减图像的方法。 设置高度只会调整图像的大小,您可能已经猜到了 我尝试使用textureRegion对其进行破解,但效果不佳 我发现了一种称为clip begin

  • 切割日志使用logrotate这个服务即可。 编辑/etc/logrotate.d/nginx这个文件,内容如下: /var/log/nginx/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 0640 www-data adm s