同样遇到,请问楼主最后有解决吗?
为什么会概率性音频播放错误?错误信息具体含义是?用户时不时会反馈音频播放失败问题,根据搜集的错误日志来看,每天都有,而且数量不少。比较影响体验 [图片] 主要报错信息(监听wx.createInnerAudioContext()创建对象的onError方法获取)如下: 1 .Android绝大多数报下面的错 {errCode:10001,errMsg:errCode:602, err:error, not found param} {errCode:10001,errMsg:errCode:62, err:load or init native decode so fail} {errCode:10001,errMsg:errCode:67, err:decode audio fail} {errCode:10004,errMsg:errCode:55, err:unknow format} errCode:602, err:error, not found param 2 . ios绝大多数报下面的错 {errMsg:INNERERRCODE:0, ERRMSG:(null),errCode:10001} {errMsg:INNERERRCODE:-1001, ERRMSG:请求超时。,errCode:10002} {errMsg:INNERERRCODE:-1003, ERRMSG:未能找到使用指定主机名的服务器。,errCode:10002} {errMsg:INNERERRCODE:-1005, ERRMSG:网络连接已中断。,errCode:10002} {errMsg:INNERERRCODE:-1009, ERRMSG:似乎已断开与互联网的连接。,errCode:10002} {errMsg:INNERERRCODE:-1100, ERRMSG:在此服务器上找不到所请求的 URL。,errCode:10001} {errMsg:INNERERRCODE:-11800, ERRMSG:这项操作无法完成,errCode:10001} {errMsg:INNERERRCODE:-11819, ERRMSG:无法完成操作,errCode:10001} INNERERRCODE:0, ERRMSG:(null) INNERERRCODE:-11849, ERRMSG:操作停止 虽然大概率跟微信音频播放底层有关,但是想知道有没有办法,降低发生这种错误的概率?或者有什么彻底解决办法? 每次发生这种问题,用户一般不懂技术,又是付费用户,就会对我们的产品产生不好的口碑,对我们影响挺大。但是在代码层面。程序只是调用微信提供的基础api,音频又是通用的格式,并且公司30台左右的测试设备从来没有复现到(产品已上线1年半),应该是个概率问题。 想问下各位同仁有没有遇到类似问题?有没有什么经验分享?另外求助官方大大
2020-12-08@Override public void onReq(final BaseReq req) { if (req.getType() == ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX) { goToShowMsg((ShowMessageFromWX.Req) req); } else { super.onReq(req); } } private void goToShowMsg(ShowMessageFromWX.Req showReq) { WXMediaMessage wxMsg = showReq.message; WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject; if (!StringUtils.isEmpty(obj.extInfo)) { // 跳转到对应页面 } finish(); } android 需要在 WXEntryActivity 上,做以上的处理,文档中写得有些问题,也不明确,其中 obj.extInfo 即是 app-parameter 传入的内容 <button open-type="launchApp" app-parameter="内容" />
launchApp 安卓唤起app 失败使用button的 open-type launchApp 在分享卡片打开小程序页面 iOS能正常唤起app,安卓弹出是否 打开app弹窗,但是没有成功唤起。
2018-12-11你可以参考下这个开源库怎么做的 https://github.com/Kujiale-Mobile/Painter
我又来提问了:ctx.drawImage()绘图不成功经进一步测试,由于ctx.draw()没有回调,向上排查是ctx.drawImage()方法没有绘出图来。图片我是有先经过wx.getImageInfo下载到本地的,网络图片域名也在downloadFile设置里配制过了,也测试过关掉域名检测设置,也拿到了下载后路径地址:如wxfile://tmp_2c98bd2e0dff2a5b723afd89a8194f1d.png。然后调用ctx.drawImage()方法绘图,然后页面上绘制不出图片来。前面这些操作在真机上无效,模拟器上可以绘制出图片没有问题的。
2018-11-08建议你试下:https://github.com/Kujiale-Mobile/Painter
canvas无法生成图片到系统相册,显示空白[图片] - 预期表现 [图片] - 复现路径 // **分享到朋友圈 sharefriend: function (){ var that = this; wx.getSystemInfo({ success:res =>{ console.log('小程序信息', parseFloat(res.version)); if (parseFloat(res.version) < 6.6){ wx.showModal({ title: '提示', content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) return false; }else{ that.setData({ share2: true, share: false }); wx.showLoading({ title: '正在生成图片...', mask: true, }); } } }); // 小程序获取图片信息API wx.getImageInfo({ src: that.data.ctxUrl, success: function (res) { console.log(res); that.setData({ ctxUrl: res.path }) }, fail(err) { console.log(err) } }) setTimeout(()=>{ var canvasCtx = wx.createCanvasContext('myCanvas'); canvasCtx.clearRect(0, 0, 0, 0); //绘制背景 canvasCtx.drawImage('../../img/write.png', 0, 0, that.data.windowWidth * 0.8, that.data.windowHeight * 0.8); //绘制名称 canvasCtx.setFontSize(18); canvasCtx.setTextAlign('center'); canvasCtx.fillText(that.data.ctxName, that.data.windowWidth * 0.8 / 2, 120); // 绘制信息 canvasCtx.setFontSize(18); canvasCtx.setTextAlign('center'); canvasCtx.fillText(that.data.ctxRank, that.data.windowWidth * 0.8 / 6, 180); canvasCtx.fillText(that.data.ctxNum, that.data.windowWidth * 0.8 / 2, 180); canvasCtx.fillText(that.data.ctxPoints, (that.data.windowWidth * 4) / 6, 180); // 绘制信息2 canvasCtx.setFontSize(13); canvasCtx.setTextAlign('center'); canvasCtx.fillText('当前排名', that.data.windowWidth * 0.8 / 6, 200); canvasCtx.fillText('得分', that.data.windowWidth * 0.8 / 2, 200); canvasCtx.fillText('净胜分', (that.data.windowWidth * 4) / 6, 200); // 绘制分割线 canvasCtx.drawImage('../../img/line.png', 0, 240, that.data.windowWidth * 0.8, 15); // 比赛项目:羽神等你来战!丰厚礼品等着你 canvasCtx.setFontSize(12); canvasCtx.setTextAlign('center'); canvasCtx.fillText('比赛项目:羽神等你来战!丰厚礼品等着你', that.data.windowWidth * 0.8 / 2.1, 285); // 绘制二维码 canvasCtx.drawImage('../../img/code.jpg', (that.data.windowWidth * 0.8 / 2) - 50, that.data.windowHeight * 0.585, 100, 100); //绘制头像 canvasCtx.save(); canvasCtx.beginPath(); //开始绘制 canvasCtx.arc(that.data.windowWidth * 0.8 / 2, 58, 38, 0, 2 * Math.PI, false); canvasCtx.clip(); canvasCtx.drawImage(that.data.ctxUrl, that.data.windowWidth * 0.8 / 2 - 38, 20, 76, 76); canvasCtx.restore(); canvasCtx.draw(); wx.hideLoading(); }, 1000) }, // 保存绘制的图片 savePic: function () { var that = this; wx.canvasToTempFilePath({ x: 0, y: 0, width: that.data.windowWidth, height: that.data.windowHeight, destWidth: that.data.windowWidth, destHeight: that.data.windowHeight, canvasId: 'myCanvas', success: function (res) { if (!res.tempFilePath) { wx.showModal({ title: '提示', content: '图片绘制中,请稍后重试', showCancel: false }) } util.savePicToAlbum(that,res.tempFilePath); } }) }, // 关闭绘制 closeShare:function(){ this.setData({ share: true, share2: false }) }
2018-10-16你在 draw 之后马上执行 canvasToTempFilePath 在真机上就是可能会出问题,需要加个 300ms 的 timeout 。我开了个 repo 来搜集这些坑,也许你可以关注下:https://github.com/Kujiale-Mobile/MP-Keng
canvas制作的图片有时会变形微信小程序中的canvas画出的来图片进行预览,图1是我想要的结果,但有时会出现类似图2、图3等其他不可预测的情况,并非一直出现错误的情况,只是有时会出现,这是为什么呢? [图片] [图片] [图片] 这里是代码部分:[图片] [图片] [图片]
2018-07-20楼主你好,这个问题是因为代码实现上有问题,在 clip 之前调用一下 ctx.fill(); 就没问题了。如果有绘图需求,欢迎使用我们开源的 https://github.com/Kujiale-Mobile/Painter 库,该库也针对上述问题作出了解决
【BUG】mac开发工具clip的bug按照官方示例 https://developers.weixin.qq.com/miniprogram/dev/api/canvas/clip.html [代码]wx.downloadFile({[代码][代码] [代码][代码]url: [代码][代码]'http://is5.mzstatic.com/image/thumb/Purple128/v4/75/3b/90/753b907c-b7fb-5877-215a-759bd73691a4/source/50x50bb.jpg'[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]ctx.save()[代码][代码] [代码][代码]ctx.beginPath()[代码][代码] [代码][代码]ctx.arc(50, 50, 25, 0, 2 * Math.PI)[代码][代码] [代码][代码]ctx.clip()[代码][代码] [代码][代码]ctx.drawImage(res.tempFilePath, 25, 25)[代码][代码] [代码][代码]ctx.restore()[代码][代码] [代码][代码]ctx.draw([代码][代码]true[代码][代码])[代码][代码] [代码][代码]}[代码][代码]})[代码]在测试开发工具上正常显示,但是只要在前面绘制一次fill()和stroke(),就会导致后续的clip全部失效 以下为测试代码: [代码]testClip() {[代码][代码] [代码][代码]let ctx = wx.createCanvasContext([代码][代码]'myCanvas'[代码][代码]);[代码][代码] [代码][代码]ctx.rect(0, 0, 100, 100);[代码][代码] [代码][代码]// 下面的fill和stroke都会导致clip失效[代码][代码] [代码][代码]ctx.fill();[代码][代码] [代码][代码]// ctx.stroke();[代码][代码] [代码][代码]ctx.draw([代码][代码]true[代码][代码]);[代码][代码] [代码][代码]// 文档上的例子[代码][代码] [代码][代码]wx.downloadFile({[代码][代码] [代码][代码]url: [代码][代码]'http://is5.mzstatic.com/image/thumb/Purple128/v4/75/3b/90/753b907c-b7fb-5877-215a-759bd73691a4/source/50x50bb.jpg'[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]ctx.save()[代码][代码] [代码][代码]ctx.beginPath()[代码][代码] [代码][代码]ctx.arc(50, 50, 25, 0, 2 * Math.PI)[代码][代码] [代码][代码]ctx.clip()[代码][代码] [代码][代码]ctx.drawImage(res.tempFilePath, 25, 25)[代码][代码] [代码][代码]ctx.restore()[代码][代码] [代码][代码]ctx.draw([代码][代码]true[代码][代码])[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码]}[代码],真机测试正常。 BUG图 [图片]
2018-07-17