gpt4 book ai didi

java - 如何将 SourceDataLine 的内容写入文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:34:32 24 4
gpt4 key购买 nike

我正在修改播放音频数据的应用程序以将数据写入文件。按照目前的实现方式,字节数组是动态填充的,每次填充时都会将此缓冲区的内容写入 SourceDataLine。我基本上想将该缓冲区写入指定格式的文件。

我已通读 this official tutorial并遇到了将音频数据写入文件的这段代码:

File fileOut = new File(someNewPathName);
AudioFileFormat.Type fileType = fileFormat.getType();
if (AudioSystem.isFileTypeSupported(fileType,
audioInputStream)) {
AudioSystem.write(audioInputStream, fileType, fileOut);
}

我从 API 文档中看到我可以使用 TargetDataLine 构造 AudioInputStream,但是在我的例子中我有一个 SourceDataLine。我不知道如何将数据从我的字节数组获取到 TargetDataLine 中,因为它实现了 read() 方法而不是 write()。该文件和其他文档中 AudioInputStream 的其他用途将其视为一种从文件中读取 的方式,因此我对它与 AudioSystem.write() 的使用有点困惑。

那么,我怎样才能从 SourceDataLine 或直接从缓冲区获取数据到 TargetDataLine 或 AudioInputStream,以便将其写入文件?

最佳答案

  1. 使用byte[]建立一个ByteArrayInputStream
  2. 将 BAIS 提供给 AudioSystem.getAudioInputStream(InputStream)
  3. AudioSystem.write(..)中使用AIS

关于java - 如何将 SourceDataLine 的内容写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9573920/

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