2013-07-23 33 views
0

我目前正在修改iPad的網絡應用程序。我正在嘗試將音頻音軌附加到圖像幻燈片上。當用戶點擊幻燈片導航控件時,我目前有音頻文件正在播放,但我似乎無法弄清楚如何在幻燈片自動啓動時播放音頻。試圖鏈接一個JavaScript事件到另一個

當我的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

只要打電話給playBg()方法中你playAudio()方法後,你交換圖像。

+0

我嘗試以下: '//背景圖像播放按鈕 功能playBg(){ \t clearInterval(bgTimer); \t $('#bgControl .play')。hide(); \t $('#bgControl .pause')。show(); \t path = $('#audioList li.active')。html(); \t playAudio(path); \t bgPaused = false; \t if(activePlayer =='youtube') \t \t ytplayer.playVideo(); (activeplayer =='vimeo') \t else if(activePlayer =='vimeo') \t \t $ f(vmplayer).api('play'); \t else \t \t nextBg(); }' 這是你的意思嗎?音頻在轉換時不會改變。 –

+0

根據我在代碼中看到的內容,您需要在每次新調用時將下一個路徑傳遞給您的playAudio()方法。最簡單的方法是將音頻文件編號並在每次調用playAudio()方法時增加編號。例如,如果你的路徑是「音樂/文件」,在playAudio()方法的開頭(假設你有5個不同的音頻文件,並且你有一個名爲「count」的計數器變量),你可以把: if(count <5) ++ count; else count = 1; then: path =「music/file」+ count; – P4T4R

相關問題