首页 > Web开发 > 详细

html5 中audio 在safari上不支持自动播放

时间:2014-04-04 00:32:45      阅读:640      评论:0      收藏:0      [点我收藏+]

今天做了一个页面,在音频列表上播放音频文件。

效果图如下:

bubuko.com,布布扣

实现原理如下:

bubuko.com,布布扣
function fnPlayAudio(obj, expr) {if(obj.hasClass("icon-play-stop")){
        obj.removeClass("icon-play-stop");
        $("#audioBox").html("");;
    }else{
        expr.removeClass("icon-play-stop");
        obj.addClass("icon-play-stop");
        $("#audioBox").html("").append("<audio controls=‘controls‘ autoplay=‘autoplay‘ height=‘1‘ width=‘1‘ id=‘audioObj‘><source src=‘../images/"+ obj.attr(‘data-src‘)+".mp3‘ type=‘audio/mp3‘/></audio>");
    }
}
bubuko.com,布布扣

注:给audio写上autoplay 为true,以为安枕无忧了,可是在ios上访问的时候,并没有自动播放。

查了资料,html audio 在iPhone,ipd,safari浏览器不能播放是有原因滴
(在safri on ios里面明确指出等待用户的交互动作后才能播放media,也就是说如果你没有得到用户的action就播放的话就会被safri拦截

于是采用了更近办法,audio标签append到页面后,执行audio.play();

bubuko.com,布布扣
function fnPlayAudio(obj, expr) {
    var voice = document.getElementById("audioObj");
    if(obj.hasClass("icon-play-stop")){
        obj.removeClass("icon-play-stop");
        $("#audioBox").html("");
        voice.pause();
    }else{
        expr.removeClass("icon-play-stop");
        obj.addClass("icon-play-stop");
        $("#audioBox").html("").append("<audio controls=‘controls‘ autoplay=‘autoplay‘ height=‘1‘ width=‘1‘ id=‘audioObj‘><source src=‘../images/"+ obj.attr(‘data-src‘)+".mp3‘ type=‘audio/mp3‘/></audio>");
        voice.play();
    }
}
bubuko.com,布布扣

 

bubuko.com,布布扣

html5 中audio 在safari上不支持自动播放,布布扣,bubuko.com

html5 中audio 在safari上不支持自动播放

原文:http://www.cnblogs.com/websalon/p/3643423.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!