我也是!今天刚收到的用户反馈,说以前都可以,最近两个月都听不了,播放进度条是正常的,但没有声音。
wx.playBackgroundAudio部分音频资源在ios上不能播放, 测试手机:iPhone 7 手机系统:IOS 12.0
2019-06-13哎我也需要这个。。。但是我也没有找到。。。
如何在音频不播放前,获取音频时长duration我现在可以在接口返回数据中拿到音频地址,如何在音频不播放前获取到时长呢,求解答,(我想在进入页面就把时长渲染到页面上)
2019-04-12几乎是同类型的问题,不过我们遇到问题的机型是荣耀十
小程序录音- 当前 Bug 的表现(可附上截图) 快速点击时,不触发catch:touchend,还有catch:touchcancel,,以至于,不能停止录音 - 预期表现 像安卓一样,即使快速点击,也能触发catch:touchend,还有catch:touchcancel,,,,实现,不到一秒钟录音,弹出提示框 - 复现路径 - 提供一个最简复现 Demo [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"modal modal-record"[代码] [代码]bind:tap[代码][代码]=[代码][代码]"toggleRecordModal"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"modal-body"[代码] [代码]catch:tap[代码][代码]=[代码][代码]"toggleWithoutAction"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]text[代码] [代码]class[代码][代码]=[代码][代码]"desc"[代码][代码]>{{ RecordDesc[recordStatus] }}</[代码][代码]text[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码][代码] [代码][代码]class[代码][代码]=[代码][代码]"dot"[代码][代码] [代码][代码]catch:touchstart[代码][代码]=[代码][代码]"handleRecording"[代码][代码] [代码][代码]catch:touchmove[代码][代码]=[代码][代码]"handleRecordingMove"[代码][代码] [代码][代码]catch:touchend[代码][代码]=[代码][代码]"handleRecordingCancel"[代码][代码] [代码][代码]catch:touchcancel[代码][代码]=[代码][代码]"handleRecordingCancel"[代码][代码] [代码][代码]catchtap[代码][代码]=[代码][代码]'dianji'[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]image[代码] [代码]class[代码][代码]=[代码][代码]"icon-mic"[代码] [代码]src[代码][代码]=[代码][代码]"../../img/mic@2x.png"[代码][代码]/>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]Page({[代码][代码] [代码][代码]data: {[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码] [代码]() { [代码] [代码] [代码][代码]},[代码][代码] [代码][代码]onShow:[代码][代码]function[代码][代码](){[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]toggleWithoutAction(e) {[代码][代码] [代码][代码]// 阻止 tap 冒泡[代码][代码] [代码][代码]},[代码][代码] [代码][代码]asd: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]console.log([代码][代码]"123"[代码][代码])[代码][代码] [代码][代码]},[代码][代码] [代码][代码]toggleRecordModal() {[代码][代码] [代码][代码]console.log([代码][代码]"wrap"[代码][代码])[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]handleRecordingMove(e) {[代码][代码] [代码][代码]var[代码] [代码]touches = e.touches[0];[代码][代码] [代码][代码]var[代码] [代码]changedTouches = [代码][代码]this[代码][代码].data.changedTouches;[代码][代码] [代码][代码]if[代码] [代码](!changedTouches) {[代码][代码] [代码][代码]return[代码][代码];[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]handleRecording(e) {[代码][代码] [代码][代码]console.log([代码][代码]"1"[代码][代码])[代码][代码] [代码][代码]let me = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]this[代码][代码].data.changedTouches = e.touches[0];[代码] [代码] [代码][代码]let recorderManager = wx.getRecorderManager();[代码][代码] [代码][代码]recorderManager.onStart(() => {[代码][代码] [代码][代码]console.log([代码][代码]"开始录音..."[代码][代码]);[代码][代码] [代码][代码]me.setData({[代码][代码] [代码][代码]num: 0[代码][代码] [代码][代码]})[代码][代码] [代码][代码]me.data.setInter = setInterval([代码][代码] [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]var[代码] [代码]numVal = me.data.num + 1;[代码][代码] [代码][代码]me.setData({ num: numVal });[代码][代码] [代码][代码]console.log([代码][代码]'setInterval=='[代码] [代码]+ me.data.num);[代码][代码] [代码][代码]}[代码][代码] [代码][代码], 1000);[代码][代码] [代码][代码]});[代码][代码] [代码][代码]recorderManager.start({[代码][代码] [代码][代码]format: [代码][代码]"mp3"[代码][代码] [代码][代码]});[代码][代码] [代码][代码]// 超时[代码][代码] [代码][代码]setTimeout([代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]me.handleRecordingCancel();[代码][代码] [代码][代码]}, 100000);[代码][代码] [代码][代码]},[代码][代码] [代码][代码]handleRecordingCancel() {[代码][代码] [代码][代码]// 向上滑动状态停止:取消录音发放[代码][代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码] [代码] [代码][代码]let recorderManager = wx.getRecorderManager();[代码][代码] [代码][代码]recorderManager.onStop((res) => {[代码][代码] [代码][代码]console.log([代码][代码]"结束录音..."[代码][代码], res);[代码][代码] [代码][代码]clearInterval(that.data.setInter)[代码] [代码] [代码][代码]// 上传[代码][代码] [代码][代码]var[代码] [代码]mediaDuration = that.data.num[代码][代码] [代码][代码]if[代码] [代码](mediaDuration < 1) {[代码][代码] [代码][代码]// mediaDuration = 1[代码][代码] [代码][代码]wx.showModal({[代码][代码] [代码][代码]title: [代码][代码]'录音不能少于1s'[代码][代码],[代码][代码] [代码][代码]confirmText: [代码][代码]'OK'[代码][代码],[代码][代码] [代码][代码]showCancel: [代码][代码]false[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].uploadRecord(res.tempFilePath);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]// 停止录音[代码][代码] [代码][代码]recorderManager.stop();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]uploadRecord(tempFilePath) {[代码][代码] [代码][代码]console.log(tempFilePath)[代码][代码] [代码][代码]}[代码][代码]})[代码]
2018-12-22不确定这个姿势是否正确:用utf8mb4
unicode转换成emoji表情图如何将后台获取到的unicode转换成emoji图样式 大概的看图\u....\u.... [图片]
2018-12-07默默感觉 现在这个onResume已经被维护起来了。。。? 那所以以前全都写在onStart里的onResume逻辑应该肿么处理呢?~ 多谢~~~
录音管理API里没有onResume()事件手册里recorderManager 对象的方法列表里是有resume方法的,但却没有onResume()事件,最下面的示例代码却有 [代码]recorderManager.onResume(() => {[代码][代码] [代码][代码]console.log([代码][代码]'recorder resume'[代码][代码])[代码][代码]})[代码]
2018-12-04所以最后解决了咩~~求分享
跪问,小程序中在服务端怎么获取access_token?如果能获取,需要设置IP白名单吗?在哪里设置?
2018-11-08同有问题 用的wafer小程序解决方案 emoji完全读不出来 没有办法post到MySQL上(已经设置过各种utf8mb4)。。。解码解得挺奇怪的 而且每次报错都说 ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x90\x9F' for column 'nickName' at row 1 不知道到底是怎么了呢
emoji编码困惑,官方貌似自己实现了一套emoji编码授权使用post,“application/x-www-form-urlencoded;“, 传数据 后台获取到的昵称,部分正常,部分乱码,找不出来解决办法,部分用户昵称会出现“”这个字符(大部分情况集中在vivo,oppo,mi手机上)[图片] 服务器打印出来有问题的字符串, 例如[图片],其中“%EE%90%99”是客户端发送过来的encodeURIComponent(用户昵称) 我选择复制 [图片]这个到微信pc客户端,能正常显示“👀”,也就是微信pc客户端能将“EE 90 99”解析成“👀”,但是这个utf-8编码的emoji实际是“f0 9f 91 80”, 所以为什么原本encodeURIComponent(👀) == “%f0%9f%91%80”, 而客户端传回的是“%EE%90%99”, 是否微信客户端默认做了一套emoji编码集,来处理一些兼容情况,如果是的话,能否把这个告知开发者
2018-10-18同问 解决了么?
微信小程序上传图片到对象存储官方给推荐一种方式呗!! 微信小程序上传图片到云对象存储 利用url 总是报错 <Error> <Code>MalformedPOSTRequest</Code> <Message>The body of your POST request is not well-formed multipart/form-data.</Message> <Resource>##########.cos.ap-beijing.myqcloud.com/460/head2.jpg</Resource> <RequestId>NWE5OGRlOTJfNGEyODVkNjRfMTUwOTVfMjkxNWM1</RequestId> <TraceId>OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OTI5MWRkM2I1ZDU3ZWE5Y2YzNDYzZTEzY2JlMjU3NDQ0ZjA4ODgyZWI5YjU1MDQ5MDFjZDY4MTAzMjg3ZWM2MTU=</TraceId> </Error> 不知道什么原因啊!!
2018-10-11我也是。。。哎。。到底是为啥 请问有解决掉么?
小程序开发环境云服务状态停止[图片] [图片] 如图中,开发环境域名和生产环境域名反了,生产环境域名变成了腾讯云分配的测试用二级域名; 开发环境云服务状态一直是停止中,点击重启服务或者恢复开发环境 都是重新开启生产环境,怎么才能开启开发环境云服务。
2018-09-19我的。。。我的IDE把Stop处理为play 真机上倒是对的。。。就很醉
在背景音乐切换触发事件时客户端反馈与开发者工具不一致切换背景音乐的时候,开发者工具不触发onStop事件,客户端触发;在停止播放触发onStop事件之后,wx.getBackgroundAudioManager()所创建的对象的属性表达存在差异,用其属性判断时,两个终端之间存在差异。 this.data.innerAudioContext.onStop(function(){ that.setData({ picUrl: 'http://p1.music.126.net/tGHU62DTszbFQ37W9qPHcg==/2002210674180197.jpg', playname: "< 空 >", playauthor: "< 空 >", isplay:true, location:null }) console.log('歌曲被stop了...') console.log(that.data.innerAudioContext) }), pauseClick: function () { if(this.data.innerAudioContext.src){ this.data.innerAudioContext.play() console.log(this.data.innerAudioContext.paused) } else{ console.log('播放失败...') wx.showToast({ title: '未找到曲目..', image:'../../imgs/play/warning3.png', duration:3000 }) } }, 最主要的问题就集中在以上两个地方的差异表达,请问这是否是bug?
2018-07-07