为了账号安全,请及时绑定邮箱和手机立即绑定

来自立体声但不是双声道音频的 UnsupportedAudioFileException

来自立体声但不是双声道音频的 UnsupportedAudioFileException

吃鸡游戏 2022-12-21 15:18:58
我正在使用AudioInputStream. 我的程序可以正确加载用两个音轨编码的 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"));
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

AudioFormat您可以手动构建相应的并使用isFormatSupported(AudioFormat)检查它

对 44100 的支持在 Java 中是标准的,但 48000 更随意,并且取决于运行代码的计算机的操作系统。请参阅6.3 音频格式

如果您不想麻烦编码复杂性,Audacity 可以很好地作为转换音频资源的工具。


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信