【问题标题】:Playing sounds sequentially HTML5按顺序播放声音 HTML5
【发布时间】:2013-06-01 15:56:24
【问题描述】:

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

没有

【问题讨论】:

    标签: html audio


    【解决方案1】:

    您不能完全使用 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/

    【讨论】:

    • 对,我正在使用 play 框架:您建议沿着这条路线走还是将文件与 Scala 合并然后提供它们?
    • 老实说,我对 Scala 没有太多经验,所以我想我不能给你答案。对于其他编程语言,我通常采用 jQuery 路线,因为它易于实现并且不会给您的应用程序增加太多开销。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2012-02-16
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    相关资源
    最近更新 更多