gpt4 book ai didi

java - 如何在 Java 媒体框架中学习 .wav 持续时间?

转载 作者:搜寻专家 更新时间:2023-11-01 01:19:39 26 4
gpt4 key购买 nike

我正在尝试使用 Java 媒体框架将 .mov 文件与 .wav 文件合并,因此我需要知道它们的持续时间。我怎样才能做到这一点?任何想法将不胜感激..

最佳答案

你可以通过这种方式学习声音文件的持续时间(这是VitalyVal的第二种方式):

  import java.net.URL;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;

public class SoundUtils {
public static double getLength(String path) throws Exception {
AudioInputStream stream;
stream = AudioSystem.getAudioInputStream(new URL(path));
AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, format
.getSampleRate(), format.getSampleSizeInBits() * 2, format
.getChannels(), format.getFrameSize() * 2, format
.getFrameRate(), true); // big endian
stream = AudioSystem.getAudioInputStream(format, stream);
}
DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(),
((int) stream.getFrameLength() * format.getFrameSize()));
Clip clip = (Clip) AudioSystem.getLine(info);
clip.close();
return clip.getBufferSize()
/ (clip.getFormat().getFrameSize() * clip.getFormat()
.getFrameRate());
}

public static void main(String[] args) {
try {

System.out
.println(getLength("..."));
} catch (Exception e) {
e.printStackTrace();
}
}

}

关于java - 如何在 Java 媒体框架中学习 .wav 持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709508/

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