恩,所以呢,现在这个问题解决没有
video组件 MEDIA_ERR_SRC_NOT_SUPPORTED使用了小程序video组件, 这个地址 https://connect-cdn-prd-cn.unitychina.cn/20190530/videos/0ca3f3b3-2e35-4805-8796-ea67f931f830_20190529_HDRP_PostProcessing.mp4 的视频 在andorid小程序上播放没问题, ios 小程序上播放报上面错误 MEDIA_ERR_SRC_NOT_SUPPORTED , ios 浏览器直接打开也可以正常播放
2019-07-07额,发也发了,不好删除。问题解决了,原来requestAnimationFrame是预定下一帧执行的函数,这个帧同步浏览器也就是小程序的刷新时间。只需要在每一次执行的函数里判断一下是否需要进行下一帧操作就行。而我上面提到的cancelAnimationFrame,是一些大牛为了解决H5里 不支持requestAnimationFrame的浏览器的兼容,简单说,不支持动画帧的浏览器就用settimeout来做,既然是settimeout就需要cleartimeout来关,这个关的函数就被封装成cancelAnimationFrame了。额,如有不对,请指出
wxs ComponentDescriptor.requestAnimation小弟没写过前端代码,对wxs里ComponentDescriptor的requestAnimation有点疑问,这个requestAnimation怎么人为的中断它呢,他只能开一个动画帧,不能关?有类似H5里的cancelAnimationFrame方法来关吗
2019-06-12找到解决方案了吗,困扰很久
微信小程序,图片预览转发的相关问题楼主希望一张图片在界面上预览,长按能够将图片保存到手机,分享给好友等。 楼主做了如下尝试: 1,调用wx.previewImage 此时预览,长按保存,转发给好友(转发的内容为图片)的的功能可正常完成,但是调用时会弹出新的窗口,影响到界面上其他按钮的正常操作,因此放弃该方案 2,使用Image组件,然后再长按事件中使用wx.showActionSheet弹出按钮选项模拟自带的长按预览API效果,使用 saveImageToPhotosAlbum保存图片,使用onShareAppMessage做转发, 此时无论怎么设置参数,转发分享给朋友的始终是一个小程序的连接,就算设置imageUrl也只是改变了链接的预览图,与楼主只想单纯分享一张图片初衷相违背。 想请教各位朋友,小程序中怎么单纯分享一张图片,又或者怎么让previewImage在组件内完成,不弹出新的窗口。
2019-06-04请问你最后是怎么解决的呢。我现在是在画图片,想用手指触控控制显示图片的大小,其他逻辑都ok就是每一次一拖动重新绘制就要很久,打log算了下时间有时候能到一秒,这完全没法玩
直接使用canvas绘制图像,颜色, android手机上效率低下直接使用canvas绘制图像,颜色, android手机上效率低下, ios效率还不错 如图 android才2帧,这如何是好??? [图片] 调试找到原因 是绘制文字比较耗时 方法如下: [代码]drawTextLeft(pcText, x, y, rect, color, flag, font) {[代码][代码] [代码][代码]if[代码] [代码](pcText == [代码][代码]null[代码] [代码]|| pcText.length == 0) {[代码][代码] [代码][代码]return[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]let scale = scaleWidth;[代码][代码] [代码][代码]let fontSize = textSize;[代码][代码] [代码][代码]let mapScale = MAP_SCALE;[代码][代码] [代码][代码]if[代码] [代码](SM.IS_PAINT_MAP) {[代码][代码] [代码][代码]scale = mapScale;[代码][代码] [代码][代码]fontSize = textHZK12 * mapScale;[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]this[代码][代码].ctx.save();[代码][代码] [代码][代码]if[代码] [代码](rect != [代码][代码]null[代码] [代码]&& rect.w > 0 && rect.h > 0) {[代码][代码] [代码][代码]this[代码][代码].setClipMap(rect.x, rect.y, rect.w, rect.h, scale);[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].setClip(0, 0, WIDTH, HEIGHT);[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]//console.log("-=drawTextLeft=- pcText:", pcText, " x=", x ," y=",y );[代码][代码] [代码][代码]this[代码][代码].ctx.fillStyle = int2color(color);[代码][代码] [代码][代码]this[代码][代码].ctx.font = fontSize + [代码][代码]"px Arial"[代码][代码];[代码][代码] [代码][代码]this[代码][代码].ctx.textBaseline = [代码][代码]"top"[代码][代码]; [代码][代码]//top/bottom/middle/normal[代码][代码] [代码][代码]//需要折行显示[代码][代码] [代码][代码]if[代码] [代码]((flag & ENUM.DRAW_TEXT_EX_IS_AUTO_NEWLINE) == ENUM.DRAW_TEXT_EX_IS_AUTO_NEWLINE) {[代码][代码] [代码][代码]let chr = pcText.split([代码][代码]""[代码][代码]);[代码][代码] [代码][代码]let temp = [代码][代码]""[代码][代码];[代码][代码] [代码][代码]let row = [];[代码][代码] [代码][代码]for[代码] [代码](let i = 0; i < chr.length; i++) {[代码][代码] [代码][代码]if[代码] [代码](chr[i] === [代码][代码]'\n'[代码][代码]) {[代码][代码] [代码][代码]row.push(temp);[代码][代码] [代码][代码]temp = [代码][代码]""[代码][代码];[代码][代码] [代码][代码]continue[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]this[代码][代码].ctx.measureText(temp + chr[i]).width < rect.w * scale) {[代码][代码] [代码][代码]temp += chr[i];[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]row.push(temp);[代码][代码] [代码][代码]temp = [代码][代码]""[代码][代码];[代码][代码] [代码][代码]i--;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]row.push(temp);[代码][代码] [代码][代码]for[代码] [代码](let i = 0; i < row.length; i++) {[代码][代码] [代码][代码]this[代码][代码].ctx.fillText(row[i], x * scale, (y * scale + i * fontSize));[代码][代码] [代码][代码]}[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].ctx.fillText(pcText, x * scale, y * scale);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]this[代码][代码].setClip(0, 0, WIDTH, HEIGHT);[代码][代码] [代码][代码]this[代码][代码].ctx.restore();[代码][代码] [代码][代码]}[代码] 仅绘制2个文字 9遍时 非常耗时! 帮忙看看 具体是哪里的问题,多谢啦!
2019-06-02