pc端、移动端插入背景音乐,自动播放,循环播放

css代码(让音乐小图片在播放的时候自动旋转):

.close_music_div img{
    animation:run 5s linear 0s infinite;
}
@keyframes run{
    from{
        -webkit-transform:rotate(0deg);
    }
    to{
        -webkit-transform:rotate(360deg);
    }
}

html代码:

<div class="zp-bg-music">
     <p class="close_music_div"><a onclick="pauseVid()" href="javascript:void(0)"><img src="img/zp/music01.png" alt=""></a></p>
     <p class="open_music_div"><a onclick="playVid()" href="javascript:void(0)"><img src="img/zp/music01.png" alt=""></a></p>
     <audio  id="bg-music" autoplay preload="auto" src="img/zp/bgmusic.mp3" loop="loop"></audio>
</div>

js代码:

$(document).ready(function(){
    playVid();
});
var myVideo=document.getElementById("bg-music");
function playVid(){
    myVideo.play();
    $(".close_music_div").show();
    $(".open_music_div").hide();
}
function pauseVid(){
    myVideo.pause();
    $(".close_music_div").hide();
    $(".open_music_div").show();
}

 

1、audio的属性可查w3c,里面写的很详细,加上autoplay就是自动播放的意思。

2、百度上很多说移动端(手机)设置了不能自动播放,因为浪费用户流量,但经实际测试,以上代码可行。

3、pc的就不能自动播放了,会报错,需要到浏览器里面自行设置,以chrome浏览器为例:

在浏览器输入 chrome://flags/#autoplay-policy

第一个选项 Autoplay policy 设置为 no user gesture is required

 

4、然后下面是在测试之前百度的别人的方法,忘记链接地址了,也是可以参考的(针对移动端不能自动播放,因为觉得代码反锁所以自己改成了上面的那种形式),没有测试过:

$(document).ready(function(){
	            autoPlayMusic();
	            audioAutoPlay();
});
function openmusic(){
    autoPlayMusic();
    audioAutoPlay();
    $(".close_music_div").css({"display":"block"});
    $(".open_music_div").css({"display":"none"});
}

function pauseAuto(){
    var myaudio = document.getElementById('bg-music');
    myaudio.pause();
    $(".close_music_div").css({"display":"none"});
    $(".open_music_div").css({"display":"block"});
}

function audioAutoPlay() {
    var myaudio = document.getElementById('bg-music');
    myaudio.play();
    document.addEventListener("WeixinJSBridgeReady", function () {
        myaudio.play();
    }, false);
}
// 音乐播放
function autoPlayMusic() {
    // 自动播放音乐效果,解决浏览器或者APP自动播放问题
    function musicInBrowserHandler() {
        musicPlay(true);
        document.body.removeEventListener('touchstart', musicInBrowserHandler);
    }
    document.body.addEventListener('touchstart', musicInBrowserHandler);
    // 自动播放音乐效果,解决微信自动播放问题
    function musicInWeixinHandler() {
        musicPlay(true);
        document.addEventListener("WeixinJSBridgeReady", function () {
            musicPlay(true);
        }, false);
        document.removeEventListener('DOMContentLoaded', musicInWeixinHandler);
    }
    document.addEventListener('DOMContentLoaded', musicInWeixinHandler);
}
function musicPlay(isPlay) {
    var media = document.querySelector('#bg-music');
    if (isPlay && media.paused) {
        media.play();
    }
    if (!isPlay && !media.paused) {
        media.pause();
    }
}

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值