HBuilder X 3.8.12.20230817
注意:开发工具尽量用最新的或较新的。太旧的版本在开发调试过程中可能会出现莫名其妙的问题。
产品说明及开发文档
APP出现错误:
This file can not be opened as a file descriptor; it is probably compressed
问题发现:
是这样的,几个月前,APP里的一个功能突然用不了了,是一个声音提醒功能,播放一个音频文件。之前一直都没有问题的,那次打包使用时这个突然就不行了,本地开发环境尝试调用播放音频文件是正常的。
一开始以为是项目中的音频文件(mp3格式)出现问题了,后面尝播放 wav 格式,发现打包后 wav音频文件仍然无法播放。
于是就百度各种资料,发现很多资料都是关于 安卓开发 或 vue、html页面使用中出现的问题,关于 mui 出现的这个问题的解决办法很少。
百度ai的搜索结果:
报错问题:"html5+plus 播放wav文件提示文件无法打开" 通常是因为以下原因:
文件路径错误:确保wav文件的路径是正确的,并且文件已经被正确地放置在应用的目录中。
文件格式不支持:HTML5+Plus可能不支持所有的音频格式,确保wav文件是标准的未压缩的格式。
文件权限问题:检查应用是否有足够的权限去访问该文件。
代码错误:确保使用的API调用是正确的,并且遵循了相关的使用规范。
解决方法:
检查并修正文件路径,确保文件存在于正确的位置。
如果wav文件格式不标准,尝试转换成标准格式。
检查应用的文件访问权限,并确保已经在manifest文件中声明了必要的权限。
审查代码,确保使用了正确的API和正确的调用方式。
示例代码:
// 创建音频播放对象
var audioPlayer = plus.audio.createPlayer( "_www/audio/yourfile.wav" );
// 设置播放完成的监听
audioPlayer.addEventListener( "ended", function() {
console.log( "播放结束" );
}, false );
// 播放音频
audioPlayer.play( function() {
console.log( "音频播放成功" );
}, function( error ) {
console.log( "音频播放失败:" + error.message );
} );
确保文件路径正确,文件存在,并且检查是否有必要的文件访问权限。如果以上步骤都无法解决问题,可以查看官方文档或者寻求HTML5+Plus社区的帮助。
最后终于看到了官方的一个解决办法,【报Bug】安卓打包后plus.audio.createPlayer播放音频报错