按下下一个标签按钮时如何暂停(播放)背景音乐

时间:2014-02-07 14:43:38

标签: javascript jquery html5 youtube-api html5-audio

我有一个HTML5音频背景音乐播放器,有一个按钮可以播放和暂停。它具有动画效果,因此在播放或暂停时音乐会淡入或淡出。此外,我的页面中有2个标签,其中一个标签是YouTube视频。因此,当按下下一张幻灯片的按钮时,我希望淡出背景音乐。当再次按下幻灯片按钮(返回没有视频的第一张幻灯片)时,音乐会淡入并播放。

以下是DEMO on JSFiddle

这是我的jquery代码:

$('#go').on('click',function(evt){
    var active = $('.accordion:visible');
    var nextElement = active.next();
    active.hide();
    if(nextElement.hasClass("accordion")){
        nextElement.fadeIn(1000);
    }else{
       $('.accordion:first').fadeIn(1000);
    }


});

//Music player
var beepTwo = $("#musicBeat");
beepTwo[0].play();
$("#dan").click(function() {  
    if (beepTwo[0].paused == false) {
        beepTwo[0].pause();
        beepTwo.animate({volume: 0}, 2000, 'swing', function() {
            // really stop the music 

        });
        $(this).addClass("is-paused");
     } else {
         beepTwo[0].play();  
         beepTwo.animate({volume: 1}, 2000);
         $(this).removeClass("is-paused");
     }

});

1 个答案:

答案 0 :(得分:2)

你去了:

$('#go').on('click',function(evt){
    var active = $('.accordion:visible');
    var nextElement = active.next();

    active.hide();
    if(!nextElement.hasClass("accordion")){
       nextElement = $('.accordion:first');
    }
    nextElement.fadeIn(1000);

    if(nextElement.attr('id') == 'one') {
        playBackgroundMusic();
    }else {
        pauseBackgroundMusic();
    }
});

function mute() {
    muted = true;
    pauseBackgroundMusic();
}

function unmute() {
    muted = false;
    playBackgroundMusic();
}

function pauseBackgroundMusic() {
    if (beepTwo[0].paused == false) {
        beepTwo.animate({volume: 0}, 2000, 'swing', function() {
            // really stop the music
            beepTwo[0].pause();        
        });
        $('#dan').addClass("is-paused");
    }
}

function playBackgroundMusic() {
    // only play music if the player is not muted
    if (beepTwo[0].paused == true && muted == false) {
        beepTwo[0].play();  
        beepTwo.animate({volume: 1}, 2000);
        $('#dan').removeClass("is-paused");
    }
}

function toggleBackgroundMusic() {
    if (muted) {
        unmute();
    } else {
        mute();
    }
}

$('#dan').click(toggleBackgroundMusic);

//Music player
var beepTwo = $("#musicBeat");
var muted = false;
playBackgroundMusic();

现在该脚本用于查看下一个打开的折叠式选项卡是否具有id“one”。在这种情况下,播放音乐。如果打开任何其他选项卡,音乐将暂停。 toggleBackgroundMusic()方法用于播放器切换。

如果您想添加更多标签并播放/暂停音乐,您只需编辑#go元素的onClick功能中的if子句。

工作演示位于: http://jsfiddle.net/4Trwc/4/

修改 并具有新的静音功能: http://jsfiddle.net/4Trwc/6/

修改-2: 淡出修复: http://jsfiddle.net/4Trwc/7/