使用java查找wma文件的mime类型

发布于 2024-10-16 18:38:53 字数 189 浏览 7 评论 0原文

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

I am using apache tika for detecting the mime type of audio and video files. For some reason tika reports the mime type of the wma file (Windows Media Audio format owned by Microsoft) as application/octet-stream. Do you know a better way to find mime type of file in java? Or can I use tika itself to query this information?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼眸里的快感 2024-10-23 18:38:53

如果您为文件提供文件名,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 magic 检测的情况(如果您手头没有文件名)。

Tika should be able to detect the files if you supply a filename for them, eg

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

I've opened https://issues.apache.org/jira/browse/TIKA-629 to track the lack of mime magic detection for if you don't have the filename to hand.

年少掌心 2024-10-23 18:38:53

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

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

请查看以下链接以查找 Java 中的 mime 类型:

  1. 在 Java 中获取文件的 Mime 类型
  2. http://www.rgagnon.com/javadetails/java-0487.html

As per Microsoft support: http://support.microsoft.com/kb/284094, the mime type of WMA should be audio/x-ms-wma.
As per: http://kb.iu.edu/data/agtj.html the mime-type application/octet-stream represents a binary file. I am not sure why TIKA is failing to recognize the proper mime type but it is the fallback/backup strategy to return application/octet-stream if the actual mime is not recognizable. The reason for failure could be many:

  1. Using an older version of library
  2. Or the library is new but the file type is newer than that
  3. Or some internal malfunction

Have a look at the below links for finding out mime-types in Java:

  1. Getting A File's Mime Type In Java
  2. http://www.rgagnon.com/javadetails/java-0487.html
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文