为什么audio paly() 方法在安卓低版本和苹果低版本无法自动播放

$(function (){

$.getJSON("http:// ...........?template=1&callback=?",gettemplate)
function gettemplate(data) {
    //调用音乐播放
    $.Includ(["Music"], function() { 
        //调用方法
        $.Music(base_data["Music"]);
    })
}

$.extend({
    Music:function(musicSrc){
        if($("#Music").length > 0){
            return false;
        }else{
            $("body").append('<div class="Music" id="Music" play="0"><audio id="Music_play" src="' + musicsrc + '" hidden="true"  loop="loop" > </audio> </div>');
            
            $("Music").on("click" ,function (){
                var _Music_play=$("Music_play")[0];
                var _this = $(this);
                
                if(_this.attr("play") != 1){
                    _this.addClass(MusicRotate);
                    _Music_play.play();
                    _this.attr("play" , "0")
                }else{
                    _this.removeClass("MusicRotate");
                    _Music_play.pause();
                    _this.attr("play" , "0");
                }
            });
            
            $("#Music").click();
            
        }
    }
})

}

CSS样式 未提取。

导致的现象 是: 在最新出的 手机上 音乐能够 正常自动播放, 图标也在进入的时候 正常旋转,

(iphone   5s  6  6s  7  7p   三星新版本手机) 

以下是不正常的 手机 型号和问题 : 小米  oppo   iPhone6p  音乐图标旋转, 但是音乐没有自动播放, 检测 代码 
console.log($("#Music_play")[0].currentTime);   // 音乐播放状态时间 输出结果为 0 ;
    

必须要将 图标 点击 两次 才能成功播放


请 大神  解答  
阅读 3k
1 个回答

移动端的部分浏览器出于用户体验和安全性(主要是保护用户流量)是禁止了自动播放和自动加载资源的。
这个部分直接传送门: https://segmentfault.com/a/11...

你应该在页面初始化的时候就初始化一个audio的dom,然后后面的点击等事件直接播放,而不是点击才创建dom,手动抛事件,这样是无效的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏