如何在Java中播放3gp文件?

Bea*_*ear 5 java media jmf 3gp

这是一个Java问题.我尝试使用Fobs4jmf来播放3gp.我可以看到视频,但没有任何声音.有什么解决方案吗?

我尝试了一个名为xuggler的新库,但我只看到如何操作,修改视频而不是播放视频文件.是否可以使用它播放视频,声音?

这是Fobs4jmf无法播放的音频文件(纯音文件) http://gonow.no-ip.org/example.3gp

谢谢

ecl*_*cle 1

从您的 example.3gp 中,它声明其属性如下(使用 KMP 播放器):

C:\Documents and Settings\DEVELOPER\Desktop\example.3gp
   General
      Complete name : C:\Documents and Settings\DEVELOPER\Desktop\example.3gp
      Format : MPEG-4
      Format profile : 3GPP Media Release 4
      Codec ID : 3gp4
      File size : 5.23 KiB
      Duration : 3s 460ms
      Overall bit rate : 12.4 Kbps
   Audio #1
      ID : 1
      Format : AMR
      Format/Info : Adaptive Multi-Rate
      Format profile : Narrow band
      Codec ID : samr
      Duration : 3s 460ms
      Bit rate mode : Constant
      Bit rate : 5 200 bps
      Channel(s) : 1 channel
      Sampling rate : 8 000 Hz
      Resolution : 16 bits
      Stream size : 2.20 KiB (42%)
      Title : SoundHandle
      Writing library : 
Run Code Online (Sandbox Code Playgroud)

您可以通过 VLCJ 使用 libVLC/VLC 库,它应该能够打开任何媒体格式和容器。但是,问题是 GPL 版本的 libVLC/VLC 不支持 3GP 容器中使用的 AMR 音频格式,原因如下(来自维基百科):

要使用 AMR 作为音频编解码器,VLC 和 FFmpeg 必须在 AMR 支持下进行编译。这是因为 AMR 许可证与 VLC 许可证不兼容。

此外,当引用此消息http://mailman.videolan.org/pipermail/vlc-devel/2011-February/078807.html时,它说:

无论如何,解析 AMR 是由 FFmpeg 项目中的 libavformat 和 libavcodec 完成的,而不是直接由 VideoLAN 项目完成的。

通过上面的消息线程,即使可以通过受限版本打开AMR音频格式,但AMR文件查找确实存在问题:

http://mailman.videolan.org/pipermail/vlc-devel/2011-February/078814.html