按顺序播放HTML5

时间:2013-06-01 15:56:25

标签: html html5 audio

在HTML5中,有一种简单的方法可以将音频片段组合在一起吗?我希望顺序播放3个极短的mp3,但不幸的是它们之间没有任何延迟是关键。我还需要为所有这些按钮设置一个播放按钮。感谢任何知道的人,

<磷>氮

1 个答案:

答案 0 :(得分:3)

你无法完全用HTML5完成这项工作,你需要添加jQuery或其他一些javascript库来帮助你实现这一目标。我最近创建了一个以this教程为起点的移动网络应用。您可以查看示例here。基本上你需要做的就是修改HTML5音频播放器的默认功能,然后让它做你想做的。

HTML:

<audio id="audio" preload="auto" tabindex="0" controls="" >
    <source src="http://www.archive.org/download/bolero_69/Bolero.mp3">
    Your Fallback goes here
</audio>

<ul id="playlist">
        <li class="active">
            <a href="http://www.archive.org/download/bolero_69/Bolero.mp3">
                Ravel Bolero
            </a>
        </li>
        <li>
            <a href="http://www.archive.org/download/MoonlightSonata_755/Beethoven-MoonlightSonata.mp3">
                Moonlight Sonata - Beethoven
            </a>
        </li>
        <li>
            <a href="http://www.archive.org/download/CanonInD_261/CanoninD.mp3">
                Canon in D Pachabel
            </a>
        </li>
        <li>
            <a href="http://www.archive.org/download/PatrikbkarlChamberSymph/PatrikbkarlChamberSymph_vbr_mp3.zip">
                patrikbkarl chamber symph
            </a>
        </li>
</ul>

jQuery的:

var audio;
var playlist;
var tracks;
var current;

init();
function init(){
    current = 0;
    audio = $('audio');
    playlist = $('#playlist');
    tracks = playlist.find('li a');
    len = tracks.length - 1;
    audio[0].volume = .10;
    playlist.find('a').click(function(e){
        e.preventDefault();
        link = $(this);
        current = link.parent().index();
        run(link, audio[0]);
    });
    audio[0].addEventListener('ended',function(e){
        current++;
        if(current == len){
            current = 0;
            link = playlist.find('a')[0];
        }else{
            link = playlist.find('a')[current];    
        }
        run($(link),audio[0]);
    });
}
function run(link, player){
        player.src = link.attr('href');
        par = link.parent();
        par.addClass('active').siblings().removeClass('active');
        audio[0].load();
        audio[0].play();
}

来源:http://blog.lastrose.com/html5-audio-video-playlist/