美文网首页
移动端Chrome Audio问题

移动端Chrome Audio问题

作者: 勿以浮沙筑高台 | 来源:发表于2017-04-01 12:47 被阅读653次

    错误信息:
    Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.

    问题描述:
    有一个这样的用户需求:用户点击播放按钮后,获取播放资源路径然后再播放音乐。
    通过异步网络请求 (axios、XMLHttpRequest) 获取到资源后调用 audio.play() 得到上面的错误信息。

    问题原因
    移动端播放音频视频必须是经过用户的操作才能执行;如果异步操作超过1000毫秒, 就会抛出上面的异常, 浏览器就不会把这个操作认为是来自用户的操作。

    解决方案
    使用 xhr 同步请求代替一步请求:

     xhr.open('GET', URL, false);
    

    相关文章

      网友评论

          本文标题:移动端Chrome Audio问题

          本文链接:https://www.haomeiwen.com/subject/ixjiottx.html