我并非 或希望在Android上使用Java Media Framework(JMF),但我正在寻找有关为什么的详细信息不可能使用它。 (我知道它被认为已经过时了,我知道在Android中可能有更好的方法来实现某些功能,例如:http://developer.android.com/guide/topics/media/index.html)
尽管如此,我需要更多有关Android上JMF的信息,但我能找到的是“JMF无法在Android上运行” - 但我想知道为什么。
所以我有两个问题:
谢谢!
修改
更具体一点,并澄清我的方法:我构建了一个小型的测试应用程序,并试图像在标准的Java桌面应用程序(按预期工作)中那样播放音频文件。我包括JMF.jar(现在没有任何修改)编译,部署和启动应用程序 - 到目前为止没有问题。调用javax.media.NoPlayerException
时会抛出(第一个)异常(Manager.createPlayer()
)。
这实际上是我停下来的地方,并想知道是否值得深入挖掘,尽管结果是可预测的。我决定首先询问技术背景,而不是在数小时的测试和调试中找出困难的方法(原因不是缺乏兴趣,但不幸的是现在是时间问题)。
答案 0 :(得分:3)
我正在寻找有关无法使用它的原因的详细信息
因为它未包含在Android SDK中。 Android SE中没有包含Java SE中的大量内容。
您是否知道任何类型的“官方”声明,例如来自Google或Oracle,声称Android不支持JMF?
我不知道这样的陈述。他们还没有发布一份声明,说明为什么Android没有与哈勃太空望远镜集成,为什么它不包括擦鞋API等。有很多东西不在Android中;将它们全部列出是不可能的。
更一般地说,谷歌面临着限制固件大小的压力,因为固件越大,获得的成本就越高(所需的存储空间,OTA更新成本等)。因此,它们只包含Java SE SDK的一个子集,作为帮助减少固件膨胀的一种方法。
为什么JMF应该不在Android上工作?
因为它未包含在Android SDK中。我不知道是否有可能(更不用说实用)创建一个JMF分支,它提供类似JMF的API,但使用Android媒体功能。