mimetype的getExtension" audio / wav"使用apache tika返回空字符串

时间:2017-06-29 14:21:17

标签: audio wav apache-tika

我试图获取有效" audio / wav"的文件扩展名。哑剧型。

使用此代码

MimeTypes mimeTypes = TikaConfig.getDefaultConfig().getMimeRepository();
    String extension = mimeTypes.getDefaultMimeTypes().forName("audio/wav").getExtension();

我得到的扩展名是空字符串。

然而,使用"音频/ x -wav"扩展工程。

这是预期的行为吗?

2 个答案:

答案 0 :(得分:1)

<强> TL; DR
是的,这是预期的行为。

x- MIME子类型通常用于尚未标准化的格式。与WAV格式对应的MIME类型为audio/vnd.waveaudio/wavaudio/waveaudio/x-wav(请参阅here)。有些浏览器接受更多或更少的MIME类型。 Apache服务器通常发送WAV为x-wav,即使我不知道原因。

官方MIME类型现在为audio/vnd.wave,因此您可以尝试使用它,看看它是否有效。

资料来源:here

答案 1 :(得分:1)

这是旧版Tika中的一个错误。

您需要使用较新版本的Apache Tika才能获得正确的行为。 (1.15.1或1.16应该这样做)。取自tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java单元测试:

assertType("audio/vnd.wave", "testWAV.wav");

(该单元测试验证官方mime类型是否为检测到的,其他别名如audio/wav通常会透明地映射到规范的mime上)

或者,如果您仍然坚持使用旧的Tika版本,那么您应该可以更换tika-mimetypes.xml file for the latest version,但是如果您在旧版的Tika中将其换掉最好重新进行单元测试,以确保您在此过程中没有破坏任何东西!