【发布时间】:2019-05-31 08:55:41
【问题描述】:
我正在使用AudioInputStream 在 Java 中进行一些基本的音频处理。我的程序可以正确加载用两条轨道编码的 16 位整数 PCM 音频,但不能用立体声编码。当呈现一个文件时(根据 ffprobe)是
Input #0, wav, from XXX:
Duration: 00:00:02.80, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
一切都很好。但是,当出现
Duration: 01:19:15.58, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
(这是我真正想要编辑的文件),它失败了
Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
编码相同,采样率差异似乎不太可能导致问题。似乎是立体声与 2 个通道导致了此异常,但立体声应该是两个通道,不是吗?
我可以用
复制这个问题AudioSystem.getAudioInputStream(new File("file under test"));
【问题讨论】: