2011-12-05 81 views
3

JQuery具有很好的視覺淡入淡入/淡出功能,適用於不同的元素,如div。我需要同樣的聲音。在2個不同的Div中播放淡入/淡出聲音

更準確地說,如果兩個YouTube iFrame API播放器正在播放2個不同的div,有沒有辦法淡入/淡出它們之間的聲音?

回答

0

這種技術被稱爲交叉淡入淡出。如果YouTube API允許您訪問音量控制(我從未使用過YouTube API播放器),那麼至少應該進行線性交叉淡入淡出(即不在曲線上)應該相對容易。然而,jQuery本身並沒有提供額外的抽象層來控制任何特定的媒體播放器(或一般的音頻API)。

+0

作爲一個Web 0.2研究員;)我將如何最好地實現循環(與setInterval的猜測),所以,它的循環,在將一個一邊佔着CPU的最佳速度和其他的就不會使卷ch時代聽起來太過分了? – user556634

+0

擊敗我。 ;-)我看到一個是/否的問題,並將我的鼻子插入。Jim Jose有一個非常漂亮的想法,使用div作爲「虛擬」目標以調用animate函數的step參數。 –

+0

@ user556634嵌入式播放器不提供音量控制。作爲對這個問題的答案,你會想要接受一個「不」的答案,從你的問題和評論來看,做這件事遠比你想象的要困難得多。 http://code.google.com/apis/youtube/player_parameters.html http://code.google.com/apis/youtube/player_parameters.html – Sinetheta

6

嘗試這樣的事情,

$('<div/>').animate({ left: 100 }, { 
    duration: 1000, 
    step: function(now, fx){ 
    var volume = now; 
     player.setVolume(volume) 
    } 
    }); 

step功能會給你一個回調的val的每一個變化,你可以調用YouTube播放器設置音量。

我不知道有多快YouTube播放器可以卷集迴應...但這種方法可以讓你有jQuery的tween效果就像在div


用法示例與fadeTo功能,

$('<div/>').fadeTo({ 
    duration: 1000, 
    step: function(now, fx){ 
     var volume = now * 100; 
     player.setVolume(volume) 
    } 
},1); 
+1

Jim,我得到了.animate移動div並更改YouTube播放器的音量。但是,設置不透明度:0.5不起作用,並且也沒有.fadeTo。但是,我發現了帶有文本的jQuery示例。這裏有什麼不同的是,YT視頻是在div中,也許它不能淡出?也許我的小提琴在這裏有一個問題... http://jsfiddle.net/tesla/FE5wF/86/ ...謝謝大家。 – user556634

+0

add >>> wmode:「opaque」<<<到你的「playerVars」 –

+0

謝謝Jim,其實我發現了wmode =「transparent」。它有什麼區別?然而,我現在更大的問題是如何獲得$()。animate和.fadeTo併發運行。實際上,我不需要使用動畫,因爲它不處理所有瀏覽器上的不透明度,而.fadeTo則不會。所以我需要一些循環機制,並在持續時間內使用回調函數.fadeTo只有一個結束回調函數。我正在努力的是具有視頻(進/出)和音頻(交叉)在多個視頻/子段之間淡化(因此緩衝的2名玩家)的YouTube播放器。有更好的方法嗎?再次感謝。 – user556634