zoukankan      html  css  js  c++  java
  • 31.JS实现控制HTML5背景音乐播放暂停

    实现控制网站背景音乐的播放暂停在html5中是非常容易和简单的,仅仅几行代码即可实现。
    首先在网页中嵌入背景音乐,html5代码为:
    • <script src="http://wuover.qiniudn.com/jquery.js"></script>
    • <a class="mscBtn" id="audioBtn" title='最幸福的人' style="cursor:pointer;"></a>
    • <audio id="bgMusic" src="http://cctv3.qiniudn.com/zuixingfuderen.mp3" autoplay="autoplay"></audio>
    通过audio的id即可控制音乐的播放(play())和暂停(pause()),同时通过改变class改变按钮的背景图片,js代码为(切记要引入jq库):
    • $(function(){
    • var music = document.getElementById("bgMusic");
    • $("#audioBtn").click(function(){
    • if(music.paused){music.play();
    • $("#audioBtn").removeClass("pause").addClass("play");
    • }else{music.pause();
    • $("#audioBtn").removeClass("play").addClass("pause");}});
    • });
    css样式为:
    • .pause {background-position: 0 bottom;}
    • .mscBtn {height: 50px;
    • background: #fff url(http://cctv2.qiniudn.com/musicbtn.png) no-repeat;
    • display: block;}
    demo效果就是本页面,当你打开了该页面之后一定有音乐播放,如果你按以下的按钮没反应,请点击这里刷新页面后再点击下面的图标。
     
     

    应大伙的要求,改进了下,让网页背景音乐支持多首歌曲,播放完在随机播放下一首并且不会和上一首重复,并提供播放暂停按钮,本来这篇文章只是提供最简单的功能让大家自行扩展的,既然大家都提到了这个,我在评论里面也回了,在把最终的版本写在这篇文章后续上,主要就是js换成以下的:
    • $(function(){
    • var music = document.getElementById("bgMusic");
    • var musicArr=[//下面对应歌曲链接和歌名,自行添加用,隔开
    • {url:'http://cctv3.qiniudn.com/tbhdqx.mp3',title:"唐伯虎点秋香"},
    • {url:'http://cctv3.qiniudn.com/abzxh.mp3',title:"敖包再相会"},
    • {url:'http://cctv3.qiniudn.com/lmzda.mp3',title:"辣妹子的爱"},
    • {url:'http://cctv3.qiniudn.com/32.mp3',title:"32号嫁给你"},
    • {url:'http://cctv3.qiniudn.com/tongxinjishou.mp3',title:"痛心疾首"},
    • {url:'http://cctv3.qiniudn.com/rgangdst.mp3',title:"如果爱能感动上天"},
    • {url:'http://cctv3.qiniudn.com/cz.mp3',title:"车站"},
    • {url:'http://cctv3.qiniudn.com/hn.ogg',title:"很难"},
    • {url:'http://cctv3.qiniudn.com/aqlmysdsc.mp3',title:"爱情里没有谁对谁错"},
    • {url:'http://cctv3.qiniudn.com/dlaqdln.mp3',title:"丢了爱情丢了你"},
    • {url:'http://cctv3.qiniudn.com/cty.mp3',title:"闯天涯"}
    • ];
    • $("#audioBtn").click(function(){
    • if(music.paused){music.play();
    • $("#audioBtn").removeClass("pause").addClass("play");
    • }else{music.pause();
    • $("#audioBtn").removeClass("play").addClass("pause");}
    • });
    • function randomMusic(){
    • var isone=$("#bgMusic").attr('src');
    • var noone=musicArr[parseInt(Math.random()*musicArr.length)];
    • if (noone.url==isone){var noone=musicArr[parseInt(Math.random()*musicArr.length)];}
    • $("#bgMusic").attr('src',noone.url);
    • $("#audioBtn").attr('title',noone.title);
    • }
    • randomMusic();
    • $("#bgMusic").on('ended',function(){
    • randomMusic();
    • });
    • });
     

    /////

    加载完成之后再播放音乐

    html:

    <audio id="bgMusic" src="" loop="loop"></audio>

    js:

    //控制音乐播放

    var musicbg = document.getElementById("bgMusic");
    $("#music").click(function(){
    if(musicbg.paused){
    musicbg.play();
    $("#music").removeClass("pause").addClass("play");
    }else{
    musicbg.pause();
    $("#music").removeClass("play").addClass("pause");
    }
    });

    //页面加载完成之后调用finish方法

    this.finish=function () {

    var audioUrl = "js/music.mp3";//音频路径
    //调用方法
    _this.loadAudio(audioUrl,function(){

    //加载层消失,内容层显示

    _this.loadingBox.hide();
    $(".text-center").show();

    //音乐

    $('#bgMusic').attr("src",audioUrl);

    var musicbg = document.getElementById("bgMusic");
    musicbg.play();

    });

    }

  • 相关阅读:
    json2jsoncpp 高级应用篇
    重载delete(operator delete)
    发布一个 json转c++ 的一个转换小程序(依赖jsoncpp 0.60)
    json2jsoncpp 关键代码分析2
    json2jsoncpp 基础应用篇
    linux下编译android版本的ffmpeg库
    win7系统下无线网卡共享本地网卡给移动设备上网
    使用事件冒泡原理控制菜单或浮层
    多条件Sql语句
    测试 数据库是否链接成功
  • 原文地址:https://www.cnblogs.com/sqyambition/p/8512150.html
Copyright © 2011-2022 走看看