在使用EasyPlayer.js播放器进行视频流播放时,尤其是在SpringBoot环境中部署静态资源时,可能会遇到“Incorrect response MIME type”的错误,这通常与WebAssembly(WASM)文件的MIME类型配置有关。
WASM是一种新的代码格式,允许在现代Web浏览器中以接近原生性能运行编译代码。当浏览器期望接收到WASM格式的文件,但服务器返回的MIME类型不正确时,就会出现这样的错误。解决这个问题,需要确保SpringBoot服务器正确配置了WASM文件的MIME类型。
wasm格式返回错误 Incorrect response MIME type. Expected ‘application/wasm’. falling back to arraybuffer instantiation 错误。
Uncaught (in promise) TypeError: Failed to execute ‘compile’ on ‘WebAssembly’: Incorrect response MIME type. Expected ‘application/wasm’.
Expected ‘application/wasm’., falling back to ArrayBuffer instantiation. These warnings refers to incorrect response MIME type of the wasm file. In order to fix it, please try to set the MIME filetype to application/wasm for the actual wasm file in your server config
这个错误通常是由WebAssembly模块加载时失败而导致的。当WebAssembly模块不能成功编译时,JavaScript代码会回退到使用ArrayBuffer实例化来代替。
解决方案
1、用的springboot的tomcat,所以修改tomcat的mime类型,多添加一个wasm的类型
- 用的是ISS,配置下wasm类型的数据就行了。
Extension: .wasm (dot wasm) MIMEType: application/wasm
2、apache修改 mime.types,添加:
applicati
on/wasm wasm
3、nginx修改mime.types,添加:
application/wasm wasm;
4、或者 nginx修改nginx.conf,添加:
{
# 配置 MIME 类型
types {
application/wasm wasm;
}
# 开启 gzip 压缩
gzip on;
}
为了解决EasyPlayer.js无插件H5播放器在SpringBoot部署时遇到的“Incorrect response MIME type”错误,我们需要确保服务器正确设置了WASM文件的MIME类型为application/wasm。这可以通过在SpringBoot的配置文件中添加相应的MIME类型定义来实现。