我们遇到了一个问题,在iOS微信扫码进我们的H5页面,大致类似微信对话场景,我们是和AI机器人对话
我们AI说话是对接阿里云的文字转语音,会使用 AudioContext 播放流式的语音,大致的代码逻辑如下
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
const sourceNode = audioContext.createBufferSource();
function playAudio(audioData) {
// 解码音频数据
audioContext.decodeAudioData(audioData, (audioBuffer) => {
// 设置音频缓冲区
sourceNode.buffer = audioBuffer;
// 连接到音频上下文的目的地(扬声器)
sourceNode.connect(audioContext.destination);
// 播放音频
sourceNode.start();
// 重置sourceNode,以便下次播放新的音频数据
sourceNode.onended = () => {
sourceNode.disconnect();
};
}, (err) => {
console.error('解码音频数据失败', err);
});
}
我们现在遇到的问题是,AI机器人说话,会在对话几轮后,突然发不出声音,需要点击页面一下才能播放出来声音,而且只有iOS微信复现了这种场景。
而且不是页面最开始的时候播放不出声音,是用户和机器人对话几轮之后,机器人突然发不出声音,我们使用Vconsole看了一下控制台也没有什么报错。
请问微信H5 中是有什么限制吗?