我正在使用AudioInputStream. 我的程序可以正確加載用兩個音軌編碼的 16 位整數(shù) PCM 音頻,但不能加載立體聲。當(dāng)出現(xiàn)一個文件時(根據(jù) 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一切安好。然而,當(dāng)出現(xiàn) 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)編碼是相同的,采樣率差異似乎不太可能導(dǎo)致問題。似乎是立體聲與 2 個通道導(dǎo)致了這個異常,但立體聲應(yīng)該是兩個通道,不是嗎?我可以復(fù)制這個問題AudioSystem.getAudioInputStream(new File("file under test"));
1 回答

jeck貓
TA貢獻1909條經(jīng)驗 獲得超7個贊
AudioFormat
您可以手動構(gòu)建相應(yīng)的并使用isFormatSupported(AudioFormat)檢查它
對 44100 的支持在 Java 中是標(biāo)準(zhǔn)的,但 48000 更隨意,并且取決于運行代碼的計算機的操作系統(tǒng)。請參閱6.3 音頻格式
如果您不想麻煩編碼復(fù)雜性,Audacity 可以很好地作為轉(zhuǎn)換音頻資源的工具。
添加回答
舉報
0/150
提交
取消