HTML5 如何实现播放多个MP3音频

方法一:audio标签

<audio>标签是HTML5中的新标签,定义声音用于嵌入音频内容,比如音乐或其他音频流。用的比较多音频格式是.mp3。

<audio>标签常用属性如下表

属性描述
autoplayautoplay添加该属性后,音频会自动播放
controlscontrols设置后,显示控件,如播放按钮、音量
looploop添加该属性后,当音频播放结束后会重新开始播放
preloadpreload音频显示页面加载,准备播放,如已添加autoplay,则忽略该属性
srcurl播放音频的URL(地址)。

目前,html5<audio>标签只能同时播放一个音频文件,如何要添加多个MP3音频文件,然后按顺序一个接着一个连续播放,需要用JS代码来实现。

通过js来实现<audio>标签连续播放多个MP3音频,代码如下:

<div id="audioBox">
    <script type="text/javascript">
        window.onload = function () {
            var arr = [
                    "http://other.web.ra01.sycdn.kuwo.cn/resource/n3/128/95/48/111_02.mp3",
                    "http://other.web.rd01.sycdn.kuwo.cn/resource/n3/7/75/111_01.mp3"
                    ]; //把需要播放的歌曲从后往前排,这里已添加两首音乐,可继续添加多个音乐
            var myAudio = new Audio();
            myAudio.preload = true;
            myAudio.controls = true;
            myAudio.src = arr.pop(); // 每次读数组最后一个元素
            myAudio.addEventListener('ended', playEndedHandler, false);
            myAudio.play();
            document.getElementById("audioBox").appendChild(myAudio);
            myAudio.loop = false; // 禁止循环,否则无法触发ended事件
            function playEndedHandler() {
                myAudio.src = arr.pop();
                myAudio.play();
                console.log(arr.length);
                !arr.length && myAudio.removeEventListener('ended', playEndedHandler, false);//只有一个元素时解除绑定
            }
        }
    </script>
</div>

方法二:weixinAudio.js

weixinAudio.js生成的样式比较好看

代码如下:

<div id="weixinAudio" align="center" class="weixinAudio">
    <audio src="" id="media" width="1" height="1" preload=""></audio>
    <span id="audio_area" class="db audio_area">
                    <span class="audio_wrp db">
                        <span class="audio_play_area">
                            <i class="icon_audio_default"></i>
                            <i class="icon_audio_playing"></i>
                        </span>
                        <span id="audio_length" class="audio_length tips_global"></span>
                        <span class="db audio_info_area">
                            <strong class="db audio_title">标题</strong>
                            <span class="audio_source tips_global">来源</span>
                            <span id="audio_times" class="audio_times tips_global">00:00</span>
                        </span>
                        <span id="audio_progress" class="progress_bar" style="width: 0%;"></span>
                    </span>
                </span>
</div>
<div class="clear5"></div>
<script src="weixinAudio.js?v=22" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
    var i = 1;
    var audios = eval('{$voices_json}'); // 语音地址数组
    document.getElementById("media").onended = function () {
        if (audios[i]) {
            this.setAttribute('src', audios[i]);
            i++;
            this.play();
        } else {
            alert('播报完成!');
        }
    };
    $('.weixinAudio').weixinAudio({
        autoplay: false,
        src: audios[0],
    });
</script>

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HTML5中,可以使用audio标签实现背景音乐的播放。为了实现多页面的连续播放,可以使用JavaScript来控制音乐的播放和暂停。 首先,在每个页面的HTML代码中添加一个audio标签来嵌入音乐文件: ``` <audio id="bgMusic" src="music.mp3" loop></audio> ``` 这里设置了id为bgMusic,src为音乐文件路径,loop表示循环播放。 然后,在每个页面的JavaScript代码中,添加以下代码: ``` var bgMusic = document.getElementById("bgMusic"); bgMusic.play(); ``` 这段代码将获取音乐标签,并播放音乐。 接下来,为了实现多页面的连续播放,需要在页面切换时,暂停当前页面的音乐,然后播放一个页面的音乐。可以使用以下代码来实现: ``` window.addEventListener('beforeunload', function() { bgMusic.pause(); }); window.addEventListener('load', function() { bgMusic.play(); }); ``` 这里使用了beforeunload事件来在页面切换前暂停当前页面的音乐,load事件来在下一个页面加载后播放音乐。 最后,为了确保音乐能够在所有浏览器中正常播放,可以使用多种音频格式: ``` <audio id="bgMusic" loop> <source src="music.mp3" type="audio/mpeg"> <source src="music.ogg" type="audio/ogg"> <source src="music.wav" type="audio/wav"> </audio> ``` 这里使用了三种不同的音频格式:mp3、ogg和wav。浏览器会自动选择支持的格式进行播放。 通过以上步骤,就可以实现HTML5中多页面的背景音乐连续播放了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

withoutfear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值