- createWebAudioContext 实时播放音频问题? 没有声音
const audioCtx = wx.createWebAudioContext(); saveBinaryToLocal(data) { //const dataBuffer = decode(data); const dataBuffer = wx.base64ToArrayBuffer(data); audioCtx.decodeAudioData(dataBuffer, (buffer) => { if (!this.audioBuffer) { console.log(buffer) this.audioBuffer = buffer; this.playAudio() } else { const newBuffer = audioCtx.createBuffer(this.audioBuffer.numberOfChannels, this.audioBuffer.length + buffer.length, this.audioBuffer.sampleRate); newBuffer.getChannelData(0).set(this.audioBuffer.getChannelData(0)); newBuffer.getChannelData(0).set(buffer.getChannelData(0), this.audioBuffer.length); this.audioBuffer = newBuffer; console.log(this.audioBuffer) } }, (err) => { console.log(`decodeAudioData error: ${err}`); }) } playAudio() { console.log('开始播放') const source = audioCtx.createBufferSource(); source.buffer = this.audioBuffer; source.connect(audioCtx.destination); // 添加错误监听 source.addEventListener('error', (error) => { console.error('音频播放出错:', error); this.isPlaying = false; }); source.addEventListener('start', () => { console.log('音频开始播放'); this.isPlaying = true; }); source.start(); } data数据是二进制加密的base64 请问哪里有问题导致播放不出来。
07-29 - 小程序 执行了10个request() 第11次就不执行request?
if (requestTask) { console.log('requestTask.abort()') requestTask.abort(); requestTask = null; } requestTask = uni.request({ url: getUrl(`assistants/${assistantSid}/text`), method: 'POST', data: data, responseType: "arraybuffer", enableChunked: true, header: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + uni.getStorageSync("access_token") }, success: () => { console.log('stream finished'); }, fail: (err) => { isChat.value = false; chatMessagesIndex.value = undefined; showModal(err.message); nextTick(() => { handleChatSuccess(); }) console.log("request fail", err); }, }); let success = (response) => { let resultText = arrayBufferToUTF8String(response.data); if (resultText) { resultText = resultText.trim().split("\n\n"); resultText.forEach(item => { if (item.indexOf('event: end') > -1) { nextTick(() => { handleChatSuccess(); requestTask.offChunkReceived(success) setTimeout(() => { requestTask.abort(); }, 100) }) } else { if (item.match(/\{.*\}/)) { // 提取JSON部分 const jsonStr = item.match(/\{.*\}/)[0]; const list = JSON.parse(jsonStr); handleChatContent(list.content); } } }) } } requestTask.onChunkReceived(success); 是个ai聊天
06-10 - 使用wx.getSystemInfo获取手机名称在哪里可以获取到一个手机型号名称大全?
在哪里可以获取一个手机型号大全
2021-05-17