我录制了一些来自麦克风的.wav文件,并将其转换为mp3和m4a文件。这些文件可以使用我的桌面播放器正确播放。
然后在我的JavaFX程序中,我将其播放为:
String fileUri = file.toURI().toString();
Media media = new Media(fileUri);
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
但是没有声音,也没有错误。
我使用ffmpeg
来查看它们:
Input #0, aac, from 'demo.m4a':
Duration: 00:00:54.00, bitrate: 132 kb/s
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 132 kb/s
Input #0, mp3, from 'hello.mp3':
Metadata:
encoder : Lavf57.83.100
Duration: 00:00:01.12, start: 0.069063, bitrate: 49 kb/s
Stream #0:0: Audio: mp3, 16000 Hz, stereo, s16p, 48 kb/s
并使用此命令通过ffmpeg进行转换:
ffmpeg -i hello.wav hello.mp3
不确定哪里错了。
更新:最后,我使用此命令生成可以由JavaFx播放的mp3
ffmpeg -i hello.wav -f mp2 hello.mp3
(也可以添加-c:a libmp3lame
以生成较小尺寸的mp3)
似乎JavaFx仅支持mp2
格式的mp3文件。