我尝试了一下自己拼装,倒是能播放了,就是来一个chunk 就拼起来, 格式是 wav 的,所以播放时都要在 chunk 前拼上 wav 的header 可参考代码 function combineHeaderAndChunk(header:ArrayBuffer, chunk:ArrayBuffer) { // Create a new ArrayBuffer to hold both the header and the chunk const combinedBuffer = new ArrayBuffer(header.byteLength + chunk.byteLength); // Create a Uint8Array view of the combined buffer const combinedView = new Uint8Array(combinedBuffer); // Copy the header into the combined buffer combinedView.set(new Uint8Array(header), 0); // Copy the chunk data after the header combinedView.set(new Uint8Array(chunk), header.byteLength); return combinedBuffer; } // Usage example let storedHeader = null; let isFirstChunk = true; ws.onmessage = function(event) { if (isFirstChunk) { // Assume the first 44 bytes are the header storedHeader = event.data.slice(0, 44); // const headerInfo = parseWavHeader(storedHeader); // console.log("WAV Header Info:", headerInfo); // Handle the rest of the first chunk as audio data const firstChunkData = event.data.slice(44); const combinedData = combineHeaderAndChunk(storedHeader, firstChunkData); processAudioData(combinedData); isFirstChunk = false; } else { // For subsequent chunks, combine with the stored header const combinedData = combineHeaderAndChunk(storedHeader, event.data); processAudioData(combinedData); } }; function processAudioData(audioData) { // Here you would typically send the data to the Web Audio API // For example: // audioContext.decodeAudioData(audioData) // .then(decodedData => { // // Use the decoded audio data // }) // .catch(error => console.error("Error decoding audio data:", error)); }
AudioBuffer是否支持动态添加buffer数据特性?如不支持,实时播放音频怎么解决播放卡顿?WebAudioContext.createBuffer
09-18录制的时 start 方法内 format 需要传 mp3 格式, onFrameRecorded 才会被触发,手机上测试可以,我测试成功了,电脑端开发工具是不行的。 我猜你和我一样是想做音频可视化,但太卡了,换 方案吧,毕竟不是 web ,小程序内你拿到数据后需要 setData到渲染进程这通信量太卡了
decodeAudioData传入onFrameRecorded回调中的frameBuffer无效[图片] 这里是代码,下面是报错,[图片] 请问通过小程序录音获取到的分片数据ArrayBuffer可以被decodeAudioData这个方法解析成AudioBuffer吗,如果不可以的话那用何种方式可以解析?
09-14实时录音,实时可视化是可以实现的,但是图像会卡成狗,毕竟是两个线程每帧都需要setData传数据, 不知道新的 skyline 渲染引擎能不能解决这种卡的问题,理论上应该可以,但是还需要等
救命,小程序到底能不能实现录音 实时 可视化?调研几天了都,目前发现几个相关的api,该怎么做? RecorderManager.onFrameRecorded();//https://developers.weixin.qq.com/miniprogram/dev/api/media/recorder/RecorderManager.onFrameRecorded.html audioCtx.decodeAudioData();// https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/WebAudioContext.decodeAudioData.html myArrayBuffer.getChannelData();//https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/AudioBuffer.getChannelData.html onFrameRecorded返回的音频片段能不能做可视化?为什么decodeAudioData解析不了,总是报传入数据不对。[图片]
09-14还不支持吗?技术卡住脖子了?两套东西融合不到一起了?
小程序OffscreenCanvas还是不能用作Canvas 2d的drawImage的参数?我想将复杂的绘图先画到OffscreenCanvas进行缓存,然后再画到屏幕的canvas(2d)上, 结果drawImage报错,不支持该类型的参数
07-181、通读小程序优化建议 2、还有可以在开发者工具内的调试器->Audits->体验评分,官方会提醒你优化建议
小程序页面不流畅?大神们,求教 ,小程序页面使用起来不流畅,是大家都有这个问题,还是我哪里需要改进的?
2021-01-22循环肯定是执行的,循环体内不信你可以打印一下,只执行一次的是你的动画,想要循环动画,你的动画写的有问题
定时器,不循环执行指定方法?如何解决?定时器,不循环执行指定方法?如何解决?
2021-01-22注意,最好把微信头像下载复制到自己的服务器上,如果小程序前端直接download微信服务器上的头像Android平台偶尔会下载不成功,或10几秒后才下载下来,这是一个坑,我趟过了
关于微信头像的域名?以下头像有些是以 `http` 开头,`有些是以 https` 开头,这个能不能统一改为 `https`,不然无法进行 `download` 域名配置 http://thirdwx.qlogo.cn/mmopen/yZkfYwo7icPzGPZRQmz3yIcF4xJrppQmQCibxmEiatmpWvlGFTMt9HY2ribdOib1zaE2NIWb4O1yE2F5DU8xfs9e3bWfYx7uC3RG7/132 https://thirdwx.qlogo.cn/mmopen/vi_32/0EYkoqb50JFppxQNRjudmdwVjjmZBuLFVwibMMMMNjbibQmygpLoUuLmpZD3wYiapjxJgljy3vRqpo7XcC7dqPzDg/132
2021-01-22你可以这样做 a() { const _timer = setTimeout(() => { if(_timer){ clearTimeout(_timer) } if('如果未达到结束条件则继续递归'){ this.a() } }, 5000) // 保存当前引用,方便全局清除 this.timer = _timer } // 页面销毁处 onUnload(){ // 清除 if(this.timer){ clearTimeout(this.timer) } }
如何关闭递归调用的setTimeout?a() { setTimeout(function () { /.. 若干代码 ../ this.a() }, 5000) }, 在a页面每隔固定的时间要执行一次a函数,但是当使用redirectTo跳转到b页面时,a函数还是会不停地递归调用自己,clearInterval也不能关闭
2021-01-22别费劲了,像我一样做成一个透明的按钮盖在UI上就行,在wx-open-launch-app 内设置个高度,不然透明按钮高度会为0
wx-open-launch-app 标签里面的内容不显示,怎么处理?<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>启动APP</title> <meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui"> </head> <body> <div id='wola' class="mobile-page-download"> <wx-open-launch-app id="launch-btn" appid="wxea5b413296e9ae45"> <template> <style>.btn { padding: 12px }</style> <button class="btn">App内查看</button> </template> </wx-open-launch-app> </div> </body> <script src="/js/jquery.min.js"></script> <script src="/js/xiaozhu.js"></script> <script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script> $(function(){ $.get(`${shareUrl}wechat/jsconf?type=weixin`, function(result){ wx.config({ debug: true, appId: result.content.appId, timestamp: result.content.timestamp, nonceStr: result.content.nonceStr, signature:result.content.signature, jsApiList:result.content.jsApiList, openTagList: ['wx-open-launch-app'] }); }); wx.ready(function () { alert('ready'); }); wx.error(function (res) { alert(`error:${JSON.stringify(res)}`); }); var btn = document.getElementById('launch-btn'); btn.addEventListener('launch', function (e) { console.log('success'); }); btn.addEventListener('error', function (e) { alert(`fail:${JSON.stringify(e.detail)}`); }); }); </script> </html> [图片][图片][图片] 为了查问题,采用了最原始的开发方式写了个demo wx-open-launch-app 标签里面的内容为啥不显示? 接入方式完全按照https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html 希望官方解答,谢谢!
2020-07-13我也遇到一样的错误,然后发现是appid是不同的需要不同的appid 标签内 appid 填写的是 微信开放平台(https://open.weixin.qq.com/)内客户端创建应用时的appid(非微信公众号)
使用网页跳转到APP报launch:fail_check fail错误,确认绑定appid没问题?根据网页跳转到移动应用的文档提供示例,测试微信内网页跳转app报launch:fail_check fail错误,反复确认过绑定的appid是正确的。 <wx-open-launch-app>标签也验证通过。如下图[图片] 下面是点击打开app按钮往app跳转的时提示的错误,如下图 [图片] 以下是相关的操作的数据信息 服务号appid:wxc323cbef30554a38 应用appid:wxb88eeb205867dd31 操作时间点:2020-05-13 16:39:00 微信号:Goog88Boy 接口文档链接:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
2020-06-30