收藏
回答

iOS微信H5使用 createBufferSource 播放声音失败?

我们遇到了一个问题,在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 中是有什么限制吗?

回答关注问题邀请回答
收藏

1 个回答

  • 智能回答 智能回答 该问答由AI生成
    01-14
    有用
登录 后发表内容