作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在修改播放音频数据的应用程序以将数据写入文件。按照目前的实现方式,字节数组是动态填充的,每次填充时都会将此缓冲区的内容写入 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,以便将其写入文件?
最佳答案
byte[]
建立一个ByteArrayInputStream
AudioSystem.getAudioInputStream(InputStream)
AudioSystem.write(..)
中使用AIS关于java - 如何将 SourceDataLine 的内容写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9573920/
我是一名优秀的程序员,十分优秀!