移动端开发框架mui代码打包后出现错误 This file can not be opened as a file descriptor; it is probably compressed

开发工具

HBuilder X 3.8.12.20230817

注意:开发工具尽量用最新的或较新的。太旧的版本在开发调试过程中可能会出现莫名其妙的问题。

产品说明及开发文档

文档 - DCloud问答


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播放音频报错

问题解决:

打开项目的配置文件 manifest.json ,找到源码视图项:找到 plus 配置中的 “runmode”,默认是 normal , 这里 改成 liberate  , 然后重新打包后就正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值