我试图获取有效" audio / wav"的文件扩展名。哑剧型。
使用此代码
MimeTypes mimeTypes = TikaConfig.getDefaultConfig().getMimeRepository();
String extension = mimeTypes.getDefaultMimeTypes().forName("audio/wav").getExtension();
我得到的扩展名是空字符串。
然而,使用"音频/ x -wav"扩展工程。
这是预期的行为吗?
答案 0 :(得分:1)
<强> TL; DR 强>
是的,这是预期的行为。
x-
MIME子类型通常用于尚未标准化的格式。与WAV格式对应的MIME类型为audio/vnd.wave
,audio/wav
,audio/wave
,audio/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中将其换掉最好重新进行单元测试,以确保您在此过程中没有破坏任何东西!