我正在尝试通过以下方式加载使用ffmpeg修改过的mp3:
"ffmpeg -i inputfile.mp3 -y -ar 48000 converted.mp3
,但是当我尝试使用javaZoom读取文件时,出现此错误
java.io.IOException: Resetting to invalid mark
at java.base/java.io.BufferedInputStream.reset(BufferedInputStream.java:454)
at org.tritonus.share.sampled.file.TAudioFileReader.getAudioInputStream(TAudioFileReader.java:330)
at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
at javazoom.spi.mpeg.sampled.file.MpegAudioFileReader.getAudioInputStream(Unknown Source)
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1060)
at VoiceBot.queueAudio(VoiceBot.java:123)
at VoiceBot.onMessageReceived(VoiceBot.java:104)
正常的未修改文件不会发生此问题,某些修改后的文件甚至不会发生。因此,我认为可能与文件大小有关。因为我将文件的采样率从44.1 kHz更改为48 kHz,这正在扩大文件的大小。
以前在此线程中发现过此问题:Error while playing some MP3s using JavaZOOM BasicPlayer classes
但是,解决此问题的方法是mp3spi1.9.5。问题是,这是我正在使用的版本,但仍然有问题。我也在使用jl1.0.1和tritonous0.3.6。
JLayer是否有问题?我应该转移到其他mp3阅读库中,还是容易解决的问题?
编辑:所以我设法通过降低转换后的mp3文件的比特率来解决此问题。我非常希望不必执行此操作,而实际上具有完整的质量。但是希望这对任何想要帮助的人都有帮助。