0

我目前正在为 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);
    }
}
4

1 回答 1

1

交换图像后,只需在 playBg() 方法中调用 playAudio() 方法即可。

于 2013-07-23T22:52:37.210 回答