1

我正在使用 apache tika 来检测音频和视频文件的 mime 类型。由于某种原因,tika 将 wma 文件(Microsoft 拥有的 Windows Media Audio 格式)的 mime 类型报告为 application/octet-stream。您知道在 java 中查找 mime 类型文件的更好方法吗?或者我可以使用 tika 本身来查询这些信息吗?

4

2 回答 2

1

如果您为它们提供文件名,Tika 应该能够检测到这些文件,例如

Metadata m = new Metadata();
m.add(Metadata.RESOURCE_NAME_KEY, filename);
detector.detect(stream, m);

如果您手头没有文件名,我已经打开https://issues.apache.org/jira/browse/TIKA-629来跟踪缺少 mime 魔术检测。

于 2011-03-31T21:05:49.780 回答
0

根据 Microsoft 支持: http: //support.microsoft.com/kb/284094,WMA的 mime 类型应该是audio/x-ms-wma. 根据: http: //kb.iu.edu/data/agtj.html mime-typeapplication/octet-stream表示二进制文件。我不确定为什么 TIKA 无法识别正确的 mime 类型,但application/octet-stream如果实际 mime 无法识别,它是返回的后备/备份策略。失败的原因可能有很多:

  1. 使用旧版本的库
  2. 或者库是新的,但文件类型比那个新
  3. 或者一些内部故障

查看以下链接以了解 Java 中的 mime 类型:

  1. 在 Java 中获取文件的 Mime 类型
  2. http://www.rgagnon.com/javadetails/java-0487.html
于 2011-02-11T03:25:23.213 回答