尝试将一个javascript事件链接到另一个

时间:2013-07-23 22:41:40

标签: javascript html5 audio slideshow

我目前正在修改iPad的网络应用。我正在尝试将音频音轨附加到图像幻灯片中。我目前在用户点击幻灯片导航控件时播放音频文件,但我似乎无法弄清楚如何在幻灯片自动启动时播放音频。

当我的main.js文件中的nextBg()函数从当前背景图像移动到下一个时,我想让它播放列表中的下一个音频文件。播放功能是:playAudio()。我该怎么做?

我目前使用的代码和文件是:

function nextBg() {
    if(bgRunning) return false;
    clearInterval(bgTimer);
    if(!$('#bgImages li.active').is(':last-child'))
        $('#bgImages li.active').removeClass('active').next().addClass('active');
    else
        $('#bgImages li.active').removeClass('active').parent().find('li:first-child').addClass('active');
    runBg();
}

function playAudio(path){
    if(audioSupport){
        var isPlaying = !myAudio.paused;
        var canPlayMp3 = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/mpeg');
        var canPlayOgg = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/ogg; codecs="vorbis"');
        if(canPlayMp3)
            myAudio.src = path+'.mp3';
        else if(canPlayOgg)
            myAudio.src = path+'.ogg';


        myAudio.removeEventListener('ended', arguments.callee, false);
        myAudio.addEventListener('ended', audioAddEndedListener , false);

        if(autoPlay || isPlaying)
        {
            myAudio.play();
            $('#audioControls .pause').css('display','block');
            $('#audioControls .play').css('display','none');
        }else{
            $('#audioControls .play').css('display','block');
            $('#audioControls .pause').css('display','none');
        }
    }
}

function audioAddEndedListener() 
{
    if(loop){
    this.currentTime = 0;
    this.play();
    }else{
        this.removeEventListener('ended', arguments.callee, false);
        setNextAudio();
        path = $('#audioList li.active').html();
        playAudio(path);
        myAudio.addEventListener('ended', audioAddEndedListener, false);
    }
}

1 个答案:

答案 0 :(得分:1)

交换图片后,只需在playBg()方法内调用playAudio()方法。